STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

[Iterator] Sử dụng Vector trong C++

Trong ngôn ngữ lập trình C++, "Iterator" là một khái niệm quan trọng trong việc làm việc với các container như Vector. Iterator cho phép ta duyệt qua các phần tử của container một cách linh hoạt và thực hiện các thao tác trên chúng. Trong phạm vi của Vector, Iterator giúp ta truy cập và thao tác với các phần tử trong Vector một cách dễ dàng và hiệu quả.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong phần tiếp theo, mình sẽ tìm hiểu về Iterator trong Vector, bao gồm các loại Iterator và cách sử dụng chúng để duyệt qua, thêm, xóa và sửa đổi các phần tử trong Vector.

Tại sao Iterator quan trọng khi làm việc với Vector trong C++?

Iterator là một khái niệm quan trọng khi làm việc với Vector trong C++. Dưới đây là một số lý do về tại sao Iterator được coi là quan trọng:

  • Duyệt qua các phần tử của Vector: Iterator cho phép bạn duyệt qua từng phần tử của Vector một cách dễ dàng. Bằng cách sử dụng Iterator, bạn có thể truy cập và thao tác trên từng phần tử của Vector một cách linh hoạt.

    Bài viết này được đăng tại [free tuts .net]

  • Thực hiện các thao tác trên phần tử: Iterator cho phép bạn thực hiện các thao tác như thêm, xóa hoặc sửa đổi các phần tử của Vector một cách hiệu quả. Điều này giúp bạn tạo ra mã linh hoạt và dễ dàng bảo trì.

  • Tính linh hoạt và đa dạng: Iterator cung cấp các loại khác nhau như Random Access Iterator, Bidirectional Iterator, và Forward Iterator. Điều này cho phép bạn lựa chọn loại Iterator phù hợp với nhu cầu cụ thể của mình, tăng tính linh hoạt và hiệu suất của mã.

  • Tương thích với các thuật toán STL: Iterator được thiết kế để tương thích với các thuật toán chuẩn của Thư viện Tiêu chuẩn C++ (STL), giúp bạn dễ dàng thực hiện các thao tác phức tạp trên Vector như sắp xếp, tìm kiếm, hoặc thống kê.

Vector trong Iterator của C++

Screenshot 202024 03 29 20122033 png

Trong ngôn ngữ lập trình C++, Vector là một container tuần tự có thể mở rộng, được cung cấp sẵn trong thư viện tiêu chuẩn (STL - Standard Template Library). Vector là một mảng động, tức là kích thước của nó có thể thay đổi trong quá trình thực thi chương trình. Vector cho phép lưu trữ một tập hợp các phần tử cùng kiểu dữ liệu theo thứ tự, và hỗ trợ nhiều phương thức tiện ích như thêm, xóa, truy cập và sắp xếp các phần tử.

Cú pháp khai báo Iterator cho một Vector trong C++

Để khai báo một Iterator cho một Vector trong C++, bạn có thể sử dụng cú pháp sau đây:

std::vector<int> myVector; // Khai báo một vector kiểu int

// Khai báo một Iterator cho vector myVector
std::vector<int>::iterator it;

Trong đó:

  • std::vector<int> là kiểu dữ liệu của Vector.
  • ::iterator là loại Iterator cho Vector đó.

Sau khi khai báo, bạn có thể sử dụng it để thực hiện các thao tác với các phần tử của Vector như duyệt qua các phần tử, thêm, xóa hoặc sửa đổi các phần tử.

Loại Iterator trong Vector của C++

Random Access Iterator

  • Random Access Iterator là loại Iterator mạnh mẽ nhất trong C++. Nó cho phép truy cập các phần tử của Vector bằng cách sử dụng các phép toán số học như cộng, trừ, nhân và chia.

Ví dụ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
     // Bài được đăng tại freetuts.net

    // Sử dụng Random Access Iterator để truy cập và in ra các phần tử của Vector
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // Sử dụng phép toán số học để truy cập phần tử ở vị trí thứ 2
    std::cout << "Element at position 2: " << vec[2] << std::endl;

    return 0;
}

Output:

1 2 3 4 5 
Element at position 2: 3

Reverse Iterator

  • Reverse Iterator là loại Iterator cho phép duyệt qua các phần tử của Vector theo chiều ngược lại so với thứ tự ban đầu.

Ví dụ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    // Bài được đăng tại freetuts.net

    // Sử dụng Reverse Iterator để duyệt qua và in ra các phần tử của Vector theo chiều ngược lại
    for (std::vector<int>::reverse_iterator rit = vec.rbegin(); rit != vec.rend(); ++rit) {
        std::cout << *rit << " ";
    }
    std::cout << std::endl;

    return 0;
}

Output:

5 4 3 2 1 

Trong các ví dụ trên, mình đã sử dụng Random Access Iterator để truy cập và thao tác với các phần tử của Vector, cũng như sử dụng Reverse Iterator để duyệt qua Vector theo chiều ngược lại.

Cách sử dụng Iterator trong Vector của C++

Duyệt qua các phần tử của Vector bằng Iterator

  • Sử dụng Iterator để duyệt qua các phần tử của Vector từ đầu đến cuối.

Ví dụ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
     // Bài được đăng tại freetuts.net

    // Sử dụng Iterator để duyệt qua và in ra các phần tử của Vector
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

Output:

1 2 3 4 5 

Thực hiện các thao tác thêm, xóa, hoặc sửa đổi phần tử trong Vector bằng Iterator

  • Sử dụng Iterator để thêm, xóa hoặc sửa đổi các phần tử của Vector.

Ví dụ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // Thêm một phần tử vào vị trí đầu tiên của Vector
    vec.insert(vec.begin(), 0);

    // Xóa phần tử ở vị trí cuối cùng của Vector
    vec.erase(vec.end() - 1);
    // Bài được đăng tại freetuts.net

    // Sửa đổi giá trị của phần tử ở vị trí thứ 2 của Vector
    std::vector<int>::iterator it = vec.begin() + 2;
    *it = 10;

    // In ra Vector sau khi thực hiện các thao tác
    for (const auto &elem : vec) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;

    return 0;
}

Output:

0 1 10 3 4 

Trong ví dụ trên, mình đã sử dụng Iterator để thêm một phần tử vào đầu Vector, xóa phần tử cuối cùng của Vector và sửa đổi giá trị của một phần tử ở vị trí thứ hai của Vector. Sau đó, mình đã in ra Vector để kiểm tra kết quả của các thao tác.

Kết bài

Trên đây là một số cách sử dụng Iterator trong Vector trong ngôn ngữ lập trình C++. Việc hiểu và thành thạo trong việc sử dụng Iterator là rất quan trọng để xử lý dữ liệu trong các cấu trúc dữ liệu như Vector một cách linh hoạt và hiệu quả. Hy vọng rằng thông qua bài viết này, bạn đã có cái nhìn tổng quan và sâu sắc hơn về cách sử dụng Iterator trong Vector.

Cùng chuyên mục:

Các hàm xử lý mảng đa chiều (array.h) trong C/C++

Các hàm xử lý mảng đa chiều (array.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top