c++ stl vector

  • 901 字
  • 次阅读
  • 条评论
  1. 1. vector
    1. 1.1. 构造
    2. 1.2. 正向遍历
    3. 1.3. 反向遍历
    4. 1.4. 添加、删除

vector

vector 是一个可变长的动态数组,支持动态的添加元素,支持随机访问。重分配通常是性能上有开销的操作。如果元素数量已知,那么 reserve() 函数可用于消除重分配。

vector 上的常见操作复杂度(效率)如下:

  • 随机访问——常数 𝓞(1)。
  • 在末尾插入或移除元素——均摊常数 𝓞(1)。
  • 插入或移除元素——与到 vector 结尾的距离成线性 𝓞(n)。

常用方法

构造

1
2
3
vector<int> a;

vector<int> a = {1,2,3} // 同时赋值。

正向遍历

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 使用下标
for (int i = 0; i < a.size(); ++i){
cout << a[i] <<' ';
}

// 使用c11 特性
for (auto x : a){
cout << x << ' ';
}

//使用迭代器
for (auto it = v.begin(); it != v.end(); it++){
cout << *it << ' ';
}

反向遍历

1
2
3
4
5
6
7
8
9
10
// 注意只能在a非空时使用,a.size() 的返回值为 usigned int
if (a.empty()){
for (int i = a.size()-1; i > 0; i--){
cout << a[i] << ' ';
}
}

for (auto it = a.rbegin(); it != a.rend(); it++){
cout << *it << ' ';
}

添加、删除

1
2
3
a.push_back(2);

a.pop
赞助喵
非常感谢您的喜欢!
赞助喵
分享这一刻
让朋友们也来瞅瞅!