C++中vector容器使用详细说明
1. 简介
vector是一个类似于动态数组的容器,能够存储任意类型的数据,提供了访问和遍历元素的方法。与数组不同的是,vector的大小可以动态变化,可以随时添加或删除元素。vector是标准模板库(STL)的一部分,因此可以与其他STL容器,例如list、map和set一起使用。
2. 基本使用
2.1 vector定义和初始化
在使用vector之前,需要包含头文件vector。
#include <vector>
vector的定义与数组类似,但需要使用模板类声明:
vector<type> vec;
其中type代表存储元素的数据类型,vec是vector对象的名称。
vector可以用以下方式进行初始化:
vector<type> vec; // 空的vector
vector<type> vec(n); // n个值初始化为类型type的默认值的vector
vector<type> vec(n, value); // n个值初始化为value的vector
vector<type> vec1(vec2); // 用vec2初始化vec1的元素
2.2 vector大小和容量
vector的大小是指存储在其中的元素个数,可以使用size()函数获取。容量是指vector在分配内存时可以容纳的元素个数的最大值,使用capacity()函数获取。在添加或删除元素时,vector会自动调整容量。
vector<type> vec;
int size = vec.size(); // 获取vector的大小
int capacity = vec.capacity(); // 获取vector容量
2.3 vector元素访问
元素可以使用下标或迭代器访问。下标从0开始,使用[]运算符。迭代器是指向vector中元素的指针,可以使用begin()和end()函数获取迭代器。
vector<type> vec;
// ...
type element = vec[index]; // 使用下标访问元素
type element = *(vec.begin() + index); // 使用迭代器访问元素
2.4 vector元素操作
添加元素使用push_back()函数,删除元素使用erase()函数。back()函数可以获取最后一个元素的值。
vector<type> vec;
// ...
vec.push_back(value); // 添加元素
type last_element = vec.back(); // 获取最后一个元素
vec.pop_back(); // 删除最后一个元素
2.5 vector迭代器
迭代器是使用STL遍历容器的常用方式。使用for循环迭代vector中的所有元素:
vector<type> vec;
// ...
for (auto it = vec.begin(); it != vec.end(); ++it) {
// 使用*it访问当前元素
}
2.6 vector中的常用算法
vector可以使用STL中的算法,例如sort()排序、find()查找等等。
vector<type> vec;
// ...
sort(vec.begin(), vec.end()); // 对vector进行排序
auto it = find(vec.begin(), vec.end(), value); // 查找元素
3. 示例
3.1 示例1:向vector中添加字符串并遍历
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<string> vec;
vec.push_back("hello");
vec.push_back("world");
vec.push_back("!");
// 使用迭代器遍历vector
for (auto it = vec.begin(); it != vec.end(); ++it) {
cout << *it << " ";
}
cout << endl;
return 0;
}
3.2 示例2:使用vector存储整型数组并求和
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 4, 5};
// 遍历vector并求和
int sum = 0;
for (auto it = vec.begin(); it != vec.end(); ++it) {
sum += *it;
}
cout << "sum = " << sum << endl;
return 0;
}
以上就是C++中vector容器的基础使用攻略,包含了vector的定义和初始化、大小和容量、元素访问、元素操作、迭代器和常用算法等内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中vector容器使用详细说明 - Python技术站