#999. STL之vector

STL之vector

No submission language available for this problem.

vector

俗称变长数组,专业称为向量

优先:可以随着元素变多而变长

缺点:比普通数组运行慢

头文件vector

创建容器vector<类型> 容器名称

常用成员函数

vecotr<int> a; // 仅创建一个空的数组
vector<int> ve(n, 0); // 创建 ve,包含 n 个元素,每个元素是 0
ve.size() 表示长度,即元素个数
ve.push_back(val) 表示从后添加一个数值 val
ve.pop_back() 表示删除最后一个数据元素
ve.clear() 表示清空容器元素
ve.empty() 查看容器是否为空

Example

vector<int > a;
for (int i = 1; i <= 10; i++) {
    int t; 
    cin >> t;
    a.push_back(t);
}
cout << "vector 容器 a 当前元素总数: " << a.size() << endl;
cout << "下标访问: ";
for (int i = 0; i < a.size(); i++) {
    cout << a[i] << ' ';
}
cout << endl;

// 作为了解
cout << "迭代器访问: ";
vector<int >::iterator it;
for (it = a.begin(); it != a.end(); it++) {
    // 迭代器 it 的使用类似指针,用 * 获得迭代器位置所代表的数据块
    cout << *it << ' ';
}
cout << endl;

cout << "auto 访问" << endl;
for (auto i : a) {
  cout << i << " ";
}
cout << endl;

简单练习

利用 vector 输入 n 个整数,将之倒序输出

输入格式

第一行一个整数 n (特别的,这里不告诉 n 的范围)

第二行 n 个整数

输出格式

倒序输出输入的 n 个整数

5
1 2 3 4 5
5 4 3 2 1