C++vector转为数组
时间: 2024-08-15 16:09:40 浏览: 42
在C++中,将`std::vector`转换为数组通常涉及到数据复制。你可以通过迭代器或下标的方式来完成这个过程。以下是两种常见的方法:
1. 使用`begin()`和`end()`函数获取范围并复制到动态数组:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int size = vec.size();
int* array = new int[size];
for (size_t i = 0; i < size; ++i) {
array[i] = vec[i];
}
相关问题
帮我写一个c++代码,将多个二维数组转为vector数组
好的,以下是一个将多个二维数组转为vector数组的c++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
int arr1[2][3] = {{1, 2, 3}, {4, 5, 6}};
int arr2[2][3] = {{7, 8, 9}, {10, 11, 12}};
int arr3[3][2] = {{13, 14}, {15, 16}, {17, 18}};
vector<vector<int>> vec[3];
// 将arr1转为vector
vector<int> vec1(arr1[0], arr1[0] + 3);
vector<int> vec2(arr1[1], arr1[1] + 3);
vec[0].push_back(vec1);
vec[0].push_back(vec2);
// 将arr2转为vector
vector<int> vec3(arr2[0], arr2[0] + 3);
vector<int> vec4(arr2[1], arr2[1] + 3);
vec[1].push_back(vec3);
vec[1].push_back(vec4);
// 将arr3转为vector
for (int i = 0; i < 3; i++) {
vector<int> tmpVec(arr3[i], arr3[i] + 2);
vec[2].push_back(tmpVec);
}
// 输出转换后的vector数组
for (int i = 0; i < 3; i++) {
cout << "vector[" << i << "]:\n";
for (auto v : vec[i]) {
for (auto j : v) {
cout << j << " ";
}
cout << endl;
}
cout << endl;
}
return 0;
}
```
这个代码将三个二维数组转为了一个vector数组,你可以根据自己的需求进行修改。
帮我写一个c++代码,将输入的坐标点point[i][j]转为vector数组
好的,以下是将二维数组point[i][j] 转为 vector 数组的 C++ 代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 100;
int point[MAXN][2];
vector<pair<int, int>> vec;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> point[i][0] >> point[i][1];
vec.push_back(make_pair(point[i][0], point[i][1]));
}
return 0;
}
```
其中,输入的坐标点数量为 n,存储在二维数组 point[i][j] 中,转换后的 vector 数组存储在 vec 中。每个 vector 元素都是一个 pair<int, int> 类型,表示坐标点的横纵坐标。
阅读全文