Chuyển tới nội dung

Tổng Hợp Các Hàm Vector Trong C++ Và Cách Sử Dụng

Tổng Hợp Các Hàm Vector Trong C++ Và Cách Sử Dụng

Trong C++, thư viện chuẩn STL cung cấp một lớp rất hữu ích cho việc làm việc với các mảng động: std::vector. std::vector là một container có thể thay đổi kích thước, giúp chúng ta quản lý bộ nhớ một cách hiệu quả và linh hoạt. Bài viết này sẽ tổng hợp các hàm quan trọng của std::vector và hướng dẫn bạn cách sử dụng chúng.

1. Khởi tạo std::vector

Trước tiên, chúng ta cần khởi tạo một std::vector. Dưới đây là một số cách để khởi tạo vector:

#include <vector>
#include <iostream>

int main() {
    // Khởi tạo vector rỗng
    std::vector<int> vec1;

    // Khởi tạo vector với kích thước nhất định và giá trị mặc định
    std::vector<int> vec2(5, 10); // Vector có 5 phần tử, mỗi phần tử có giá trị là 10

    // Khởi tạo vector với danh sách khởi tạo
    std::vector<int> vec3 = {1, 2, 3, 4, 5};

    return 0;
}

2. Thêm và Xóa Phần Tử

Thêm phần tử: Bạn có thể sử dụng các hàm push_back hoặc emplace_back để thêm phần tử vào cuối vector.

std::vector<int> vec;
vec.push_back(1);
vec.emplace_back(2); // Tạo phần tử trực tiếp và thêm vào cuối

Xóa phần tử: Bạn có thể sử dụng các hàm pop_back, erase hoặc clear.

vec.pop_back(); // Xóa phần tử cuối cùng

vec.erase(vec.begin() + 1); // Xóa phần tử tại vị trí chỉ định

vec.clear(); // Xóa tất cả các phần tử

3. Truy cập Phần Tử

Sử dụng chỉ mục: Truy cập phần tử bằng cách sử dụng chỉ mục (index).

int value = vec[0]; // Truy cập phần tử đầu tiên

Sử dụng hàm at: Hàm at cung cấp sự kiểm tra lỗi và ném ngoại lệ nếu chỉ mục không hợp lệ.

int value = vec.at(0); // Truy cập phần tử đầu tiên

Sử dụng hàm frontback: Truy cập phần tử đầu tiên và phần tử cuối cùng.

int first = vec.front(); // Phần tử đầu tiên
int last = vec.back(); // Phần tử cuối cùng

4. Kích Thước và Dung Lượng

Lấy kích thước: Số lượng phần tử hiện tại trong vector.

size_t size = vec.size();

Lấy dung lượng: Kích thước bộ nhớ đã cấp phát cho vector.

size_t capacity = vec.capacity();

Kiểm tra rỗng: Xem vector có rỗng hay không.

bool isEmpty = vec.empty();

5. Đổi Kích Thước và Dung Lượng

Thay đổi kích thước: Bạn có thể thay đổi kích thước vector bằng cách sử dụng hàm resize.

vec.resize(10, 0); // Thay đổi kích thước thành 10, phần tử mới sẽ có giá trị 0

Dự trữ dung lượng: Dự trữ bộ nhớ để cải thiện hiệu suất.

vec.reserve(20); // Dự trữ bộ nhớ cho tối đa 20 phần tử

6. Sao Chép và Di Chuyển

Sao chép: Sử dụng toán tử gán hoặc hàm khởi tạo sao chép.

std::vector<int> vecCopy = vec; // Sao chép vector

Di chuyển: Sử dụng toán tử gán di chuyển hoặc hàm khởi tạo di chuyển để chuyển quyền sở hữu tài nguyên.

std::vector<int> vecMoved = std::move(vec);

7. Lặp Qua Vector

Sử dụng vòng lặp for:

for (size_t i = 0; i < vec.size(); ++i) {
    std::cout << vec[i] << " ";
}

Sử dụng vòng lặp range-based for:

for (const auto& elem : vec) {
std::cout << elem << " ";
}

Sử dụng iterator:

for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}

8. Các Hàm Khác

assign: Gán giá trị mới cho toàn bộ vector.

vec.assign(5, 1); // Vector sẽ có 5 phần tử, mỗi phần tử có giá trị 1

swap: Hoán đổi nội dung của hai vector.

std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = {4, 5, 6};
vec1.swap(vec2);

shrink_to_fit: Giảm dung lượng của vector để phù hợp với kích thước hiện tại.

vec.shrink_to_fit();

Kết Luận

std::vector là một trong những container mạnh mẽ nhất trong C++ với nhiều hàm hữu ích để quản lý bộ nhớ và dữ liệu. Bằng cách sử dụng các hàm đã được đề cập, bạn có thể dễ dàng thao tác với dữ liệu trong vector một cách linh hoạt và hiệu quả. Hãy thử áp dụng những kiến thức này trong các dự án của bạn để thấy sự khác biệt trong việc quản lý dữ liệu!

Kết nối với web designer Lê Thành Nam

LinkedIn

LinkedIn (Quốc tế)

Facebook

Twitter

Website

Chia Sẻ Bài Viết
Follow Nam Trên LinkedIn
Follow on LinkedIn

BÀI VIẾT KHÁC

Tham Khảo Các Dịch Vụ Của Web Designer Lê Thành Nam

Thiết Kế WebsiteTrọn Gói
Thiết Kế Website
Trọn Gói
Nâng Tầm Thương Hiệu, Tối Ưu Hiệu Suất
SEO Website Tổng Thể
SEO
Website Tổng Thể
Tăng Thứ Hạng, Thu Hút Khách Hàng
Nâng Cấp Website
Nâng Cấp
Website
Đổi Mới Hiệu Suất, Nâng Cao Trải Nghiệm
Quản Trị Website
Quản Trị
Website
Đảm Bảo Hoạt Động, Tối Ưu Hiệu Suất