std::vector
时间: 2023-09-07 18:11:06 浏览: 84
std::vector 是 C++ STL(标准模板库)中的一个容器,它可以存储任意类型的数据。它的特点是可以动态地调整容器的大小,可以在容器的任何位置插入或删除元素,支持随机访问,同时还有许多其他有用的方法。使用 std::vector 需要包含头文件 <vector>。下面是一个简单的示例:
```
#include <vector>
#include <iostream>
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
for (int i = 0; i < v.size(); i++) {
std::cout << v[i] << " ";
}
std::cout << std::endl;
v.push_back(6);
for (int i = 0; i < v.size(); i++) {
std::cout << v[i] << " ";
}
std::cout << std::endl;
v.pop_back();
for (int i = 0; i < v.size(); i++) {
std::cout << v[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5
```
相关问题
std::vector<std::string,std::vector<std::string>>
This code is not valid as the second template argument of std::vector should be a single type, not another vector.
To create a vector of vectors of strings, you could use:
std::vector<std::vector<std::string>> myVector;
std::vector::at 和 std::vector::operator[]
`std::vector::at()`和`std::vector::operator[]`都是用于访问C++标准库容器`std::vector`中的元素的方法,它们的主要区别在于错误处理和性能上:
1. `std::vector::at(size_type index)`:这个方法接收一个索引作为参数,并返回指定位置的元素。如果你提供的索引超出范围(即小于0或大于等于`size()`),会抛出`std::out_of_range`异常。因此,使用`at()`需要确保索引有效,否则可能导致程序崩溃。
2. `std::vector::operator[](size_type index)`:这是`std::vector`的一个隐式成员函数,也可以用方括号操作符[]来调用,它与`at()`类似,获取指定位置的元素。同样,如果索引无效,它会进行边界检查,但对于较大的向量,它比`at()`稍微快一些,因为不需要创建异常对象。
简而言之,`at()`提供了一种更安全但相对较慢的方式来访问元素,而`operator[]`虽然不太安全,但在常见情况下可能会更快。
阅读全文