vector 获取指定下标的元素
时间: 2023-11-17 13:06:08 浏览: 220
要获取 vector 中指定下标的元素,可以使用下标运算符 `[]`,例如:
```c++
vector<int> v = {1, 2, 3};
int third_element = v[2];
```
这样,变量 `third_element` 就会被赋值为 3,因为下标是从 0 开始的,所以 `v[2]` 表示的是第三个元素。
需要注意的是,如果使用下标运算符获取一个超出 vector 范围的下标,就会导致程序崩溃。为了避免这种情况,可以使用 vector 的 `at()` 函数,例如:
```c++
vector<int> v = {1, 2, 3};
// 这里使用 at() 函数获取第四个元素,会导致程序崩溃
int fourth_element = v.at(3);
// 可以使用 size() 函数判断下标是否越界
if (3 < v.size()) {
int fourth_element = v[3];
} else {
cout << "vector index out of range" << endl;
}
```
这样,如果下标超出了 vector 的范围,就会输出一条错误信息,而不是崩溃。
相关问题
C++删除vector指定下标的元素
可以使用vector的erase函数来删除指定下标的元素。具体操作如下:
```c++
vector<int> vec = {1, 2, 3, 4, 5};
int index = 2; // 要删除的元素下标
vec.erase(vec.begin() + index); // 删除指定下标的元素
```
以上代码将删除vec中下标为2的元素,也就是3。注意,erase函数的参数是一个迭代器,需要使用`vec.begin() + index`来获取要删除元素的迭代器。
修改vector中的指定元素
要修改 vector 中的指定元素,可以使用下标运算符 [] 或者迭代器来访问该元素并进行修改。例如,假设我们有一个名为 v 的 vector,想要修改第三个元素的值为 5,可以使用以下代码:
```
v[2] = 5; // 下标从 0 开始,因此第三个元素的下标为 2
```
如果想要使用迭代器来访问和修改某个元素,可以使用以下代码:
```
auto it = v.begin() + 2; // 获取第三个元素的迭代器
*it = 5; // 修改该元素的值为 5
```
需要注意的是,如果下标或者迭代器指向的位置超出了 vector 的范围,会导致程序崩溃或者出现未定义的行为。因此,在修改 vector 中的元素时,一定要确保下标或者迭代器指向的位置是合法的。