C++vector转为数组
时间: 2024-08-15 09:09:40 浏览: 79
在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++ int数组转为string
在C++中,将整数数组转换为字符串可以使用标准库提供的`std::to_string()`函数配合迭代器来逐个元素转换。这里是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
#include <vector>
std::string intArrayToString(const int arr[], size_t size) {
std::stringstream ss;
for (size_t i = 0; i < size; ++i) {
ss << arr[i] << " "; // 如果每个元素之间需要分隔,这里可以添加逗号或空格等
}
return ss.str(); // 返回转换后的字符串
}
int main() {
int array[] = {1, 2, 3, 4, 5};
size_t array_size = sizeof(array) / sizeof(array[0]);
std::string strArray = intArrayToString(array, array_size);
std::cout << "Int array as string: " << strArray << std::endl;
return 0;
}
```
在这个例子中,`intArrayToString`函数接受一个整数数组和它的大小,然后通过循环遍历数组,并使用`std::to_string(arr[i])`将每个整数转换为字符串形式,最后将所有字符串连接成一个。
阅读全文