Trong C++, vector là một kiểu dữ liệu tập hợp (container) cung cấp cho người dùng một cách để lưu trữ và truy xuất một danh sách các phần tử. Nó được cung cấp bởi thư viện STL (Standard Template Library) và có thể lưu trữ bất kỳ kiểu dữ liệu nào.
Vectors là tập hợp đa chiều, nó có thể mở rộng và thu gọn kích thước tự động. Nó cũng cung cấp các hàm tiện ích để thao tác với các phần tử trong vector, chẳng hạn như thêm, xóa, truy xuất và sắp xếp các phần tử.
#include <iostream> #include <vector> int main() { // tạo một vector chứa các số nguyên std::vector<int> numbers; // thêm các phần tử vào vector numbers.push_back(1); numbers.push_back(2); numbers.push_back(3); // in ra các phần tử của vector for (int i = 0; i < numbers.size(); i++) { std::cout << numbers[i] << " "; } std::cout << std::endl; // thêm một phần tử vào đầu vector numbers.insert(numbers.begin(), 0); // xóa phần tử cuối cùng của vector numbers.pop_back(); // sắp xếp các phần tử trong vector std::sort(numbers.begin(), numbers.end()); // tìm kiếm một phần tử trong vector int search_value = 2; std::vector<int>::iterator it = std::find(numbers.begin(), numbers.end(), search_value); if (it != numbers.end()) { std::cout << "Found value: " << *it << std::endl; } else { std::cout << "Value not found" << std::endl; } return 0; }
Trong ví dụ trên, chúng ta tạo một vector chứa các số nguyên, thêm, xóa, truy xuất và sắp xếp các phần tử trong vector. Vectors là một công cụ rất hữu ích trong C++, đặc biệt là khi bạn cần lưu trữ và quản lý một danh sách các phần tử, nó cung cấp các hàm tiện ích để thao tác với các phần tử trong vector và tự động mở rộng và thu gọn kích thước.
Ưu điểm của vector trong c++
Có nhiều ưu điểm khi sử dụng vector trong C++:
- Tự động quản lý kích thước: Vector tự động mở rộng kích thước khi cần thêm phần tử mới và thu gọn kích thước khi xóa phần tử. Điều này giúp cho việc quản lý bộ nhớ trở nên dễ dàng hơn.
- Truy xuất phần tử nhanh chóng: Vector cung cấp các hàm truy xuất phần tử như
operator[]
,at()
vàfront()
/back()
, cho phép truy xuất đến các phần tử trong vector nhanh chóng và dễ dàng. - Cung cấp các hàm tiện ích: Vector cung cấp nhiều hàm tiện ích như thêm, xóa, sắp xếp và tìm kiếm phần tử, giúp cho việc quản lý danh sách phần tử trở nên dễ dàng hơn.
- Dễ dàng mở rộng: Vector có thể chứa bất kỳ kiểu dữ liệu nào và có thể mở rộng để chứa các kiểu dữ liệu khác.
- Đa chiều: Vector là tập hợp đa chiều, nó có thể chứa các vector khác, giúp cho việc quản lý dữ liệu phức tạp hơn.
- Hiệu suất
Một vài ví dụ về vector trong c++
Ví dụ 1: Tạo một vector chứa các số nguyên và in ra tất cả các phần tử trong vector
#include <iostream> #include <vector> int main() { // tạo một vector chứa các số nguyên std::vector<int> numbers; // thêm các phần tử vào vector numbers.push_back(1); numbers.push_back(2); numbers.push_back(3); // in ra các phần tử của vector for (int i = 0; i < numbers.size(); i++) { std::cout << numbers[i] << " "; } return 0; }
Ví dụ 2: Tạo một vector chứa các chuỗi và in ra tất cả các phần tử trong vector
#include <iostream> #include <vector> int main() { // tạo một vector chứa các chuỗi std::vector<std::string> words; // thêm các phần tử vào vector words.push_back("hello"); words.push_back("world"); words.push_back("!"); // in ra các phần tử của vector for (int i = 0; i < words.size(); i++) { std::cout << words[i] << " "; } return 0; }
Ví dụ 3: Tạo một vector chứa các đối tượng và sử dụng các hàm tiện ích của vector để thao tác với các phần tử trong vector
#include <iostream> #include <vector> class MyObject { public: MyObject(int value) : m_value(value) {} int getValue() const { return m_value; } private: int m_value; }; int main() { // tạo một vector chứa các đối tượng MyObject std::vector<MyObject> objects; // thêm các phần tử vào vector objects.push_back(MyObject(1)); objects.push_back(MyObject(2)); objects.push_back(MyObject(3)); // in ra các giá trị của các phần tử trong vector for (int i = 0; i < objects.size(); i++) { std::cout << objects[i].getValue() << " "; } std::cout << std::endl; // thêm một phần tử vào đầu vector objects.insert(objects.begin(), MyObject(0)); // xóa phần tử cuối cùng của vector objects.pop_back(); // tìm kiếm một phần tử trong vector int search_value = 2; std::vector<MyObject>::iterator it = std::find_if(objects.begin(), objects.end(), [&search_value](const MyObject& obj) { return obj.getValue() == search_value; }); if (it != objects.end()) { std::cout << "Found value: " << it->getValue() << std::endl; } else { std::cout << "Value not found" << std::endl; } return 0; }
Trong ví dụ trên, chúng ta tạo một vector chứa các đối tượng MyObject, thêm, xóa, tìm kiếm và sử dụng các hàm tiện ích của vector để thao tác với các phần tử trong vector. Như bạn thấy, vector là một công cụ rất hữu ích và tiện lợi trong C++, nó cung cấp các hàm tiện ích để quản lý và thao tác với các phần tử trong vector, giúp cho việc lập trình trở nên dễ dàng hơn.