C++中如何传递数组到`stdvector`中?
时间: 2024-09-27 16:08:04 浏览: 28
在C++中,将数组转换为`std::vector`通常涉及两个步骤:一是创建一个新的`std::vector`,然后使用`insert`或`push_back`方法添加数组的内容。
假设你有一个固定大小的数组`arr`,你可以这样做:
```cpp
#include <vector>
// 假设arr是一个已知大小的整数数组
int arr[] = {1, 2, 3, 4, 5};
// 计算数组长度(如果不确定大小可以用 sizeof(arr) / sizeof(arr[0]))
size_t arraySize = sizeof(arr) / sizeof(arr[0]);
// 创建一个与arr相同类型的vector
std::vector<int> vec;
// 使用插入迭代器将数组元素复制到vector中
for (size_t i = 0; i < arraySize; ++i)
{
vec.insert(vec.end(), arr + i, arr + i + 1); // 注意这里加1是因为要跳过最后一个元素
}
// 或者直接推入所有元素
// vec.reserve(arraySize); // 如果知道大小并希望提高效率,可以预分配空间
vec.push_back(arr[arraySize]); // 添加最后一个元素,如果没有使用insert,需要手动添加
```
如果你不确定数组的大小,也可以先动态计算数组长度:
```cpp
size_t arraySize = 0;
while (arr[arraySize] != 0) // 假设数组是以特定值结束
{
++arraySize;
}
```
阅读全文