C++ vector操作
时间: 2023-08-28 19:04:28 浏览: 56
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 << " ";
}
```
c++ vector操作函数
C++中的vector是一个动态数组,它可以根据需要自动调整大小。以下是一些常用的vector操作函数:
1. push_back():在vector的末尾添加一个元素。
```c++
vector<int> vec;
vec.push_back(10); // 现在vec中有一个元素10
```
2. pop_back():删除vector的末尾元素。
```c++
vector<int> vec = {10, 20, 30};
vec.pop_back(); // 现在vec中只有两个元素10和20
```
3. size():返回vector中元素的数量。
```c++
vector<int> vec = {10, 20, 30};
int size = vec.size(); // size的值为3
```
4. empty():检查vector是否为空。
```c++
vector<int> vec;
bool is_empty = vec.empty(); // is_empty的值为true
```
5. clear():删除vector中的所有元素。
```c++
vector<int> vec = {10, 20, 30};
vec.clear(); // 现在vec中没有元素了
```
6. insert():在vector的指定位置插入一个元素。
```c++
vector<int> vec = {10, 20, 30};
vec.insert(vec.begin() + 1, 15); // 在vec的第二个位置插入元素15
```
7. erase():删除vector中的指定元素。
```c++
vector<int> vec = {10, 20, 30};
vec.erase(vec.begin() + 1); // 删除vec的第二个元素20
```
8. resize():改变vector的大小。
```c++
vector<int> vec = {10, 20, 30};
vec.resize(5); // 现在vec的大小为5,多出的两个元素值为0
```