c++,vector的操作
时间: 2023-10-25 19:11:19 浏览: 65
好的,关于C++中vector的操作,常用的有以下几种:
1. 在vector末尾添加元素:使用push_back()函数,例如:vec.push_back(5);
2. 在vector指定位置插入元素:使用insert()函数,例如:vec.insert(vec.begin()+2, 3);
3. 删除vector末尾的元素:使用pop_back()函数,例如:vec.pop_back();
4. 删除vector指定位置的元素:使用erase()函数,例如:vec.erase(vec.begin()+2);
5. 获取vector中元素的个数:使用size()函数,例如:int n = vec.size();
6. 获取vector中指定位置的元素:使用[]运算符,例如:int x = vec;
7. 清空vector中的所有元素:使用clear()函数,例如:vec.clear();
8. 判断vector是否为空:使用empty()函数,例如:if(vec.empty()) { ... }
相关问题
C++ vector操作
C语言中,可以使用数组来进行类似于C++中vector的操作。下面是一些常见的vector操作的C语言实现:
1. 创建一个vector:
```c
int* vector = (int*)malloc(sizeof(int) * size);
```
2. 获取vector的大小:
```c
size_t vector_size = size;
```
3. 向vector中添加元素:
```c
vector = (int*)realloc(vector, sizeof(int) * (size + 1));
vector[size = element;
size++;
```
4. 获取vector中的元素:
```c
int element = vector[index];
```
5. 修改vector中的元素:
```c
vector[index = new_element;
```
6. 删除vector中的元素:
```c
for (int i = index; i < size - 1; i++) {
vector[i = vector[i + 1];
}
vector = (int*)realloc(vector, sizeof(int) * (size - 1));
size--;
```
7. 释放vector的内存:
```c
free(vector);
```
注意,上述代码只是简单示例,并没有考虑到扩容、缩容等复杂情况。如果需要更完整和高效的实现,建议使用现有的开源库,如GLib或C++等支持C语言的库。
c++ vector操作
C++ 中的 vector 是一个动态数组,可以在运行时动态地增加或减少数组的大小。下面是一些 vector 常用的操作:
1. 创建一个 vector
```c++
#include <vector>
// 创建一个空的 vector
std::vector<int> v1;
// 创建一个包含 10 个元素,每个元素都是 0 的 vector
std::vector<int> v2(10);
// 创建一个包含 5 个元素,每个元素都是 2 的 vector
std::vector<int> v3(5, 2);
// 创建一个包含 {1,2,3,4,5} 的 vector
std::vector<int> v4{1, 2, 3, 4, 5};
```
2. 访问 vector 中的元素
```c++
std::vector<int> v{1, 2, 3, 4, 5};
// 访问第一个元素
int first = v.front();
// 访问最后一个元素
int last = v.back();
// 访问第 i 个元素
int i = 2;
int elem = v[i];
// 获取 vector 中的元素个数
int size = v.size();
```
3. 在 vector 的末尾添加元素
```c++
std::vector<int> v{1, 2, 3};
// 在 vector 的末尾添加一个元素
v.push_back(4);
// 在 vector 的末尾添加一个数组或 vector
std::vector<int> v2{5, 6};
v.insert(v.end(), v2.begin(), v2.end());
```
4. 在 vector 中删除元素
```c++
std::vector<int> v{1, 2, 3, 4, 5};
// 删除 vector 中的最后一个元素
v.pop_back();
// 删除 vector 中的第 i 个元素
int i = 2;
v.erase(v.begin() + i);
// 删除 vector 中的一段元素
int start = 1;
int end = 3;
v.erase(v.begin() + start, v.begin() + end);
```
5. 遍历 vector
```c++
std::vector<int> v{1, 2, 3, 4, 5};
// 使用迭代器遍历 vector
for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
std::cout << *it << " ";
}
// 使用 auto 关键字遍历 vector
for (auto elem : v) {
std::cout << elem << " ";
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)