std::vector添加数组数据
时间: 2025-02-01 16:20:24 浏览: 69
### 将数组数据添加到 `std::vector` 中的方法
在 C++ 中,可以通过多种方式将数组的数据复制或移动到 `std::vector` 容器中。以下是几种常见方法:
#### 方法一:使用构造函数初始化
可以直接利用 `std::vector` 的构造函数来创建并初始化向量对象。
```cpp
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5};
size_t arr_size = sizeof(arr)/sizeof(arr[0]);
// 使用两个迭代器作为参数传递给 vector 构造函数
std::vector<int> vec(arr, arr + arr_size);
for (const auto& elem : vec) {
std::cout << elem << " ";
}
}
```
此代码片段展示了如何通过指定范围的方式构建一个新的 `std::vector` 实例[^1]。
#### 方法二:借助标准算法库中的 copy 函数
也可以采用 `<algorithm>` 头文件下的 `copy()` 来实现相同的效果。
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // For std::copy()
int main(){
double source_array[] = {1.1, 2.2, 3.3};
std::vector<double> destination_vector;
// 预留空间以提高性能
destination_vector.reserve(sizeof(source_array)/sizeof(*source_array));
// 执行拷贝操作
std::copy(std::begin(source_array), std::end(source_array), std::back_inserter(destination_vector));
for(auto value : destination_vector){
std::cout<<value<<" ";
}
}
```
这里先预留足够的内存空间再执行实际的元素插入动作有助于提升效率。
#### 方法三:遍历赋值法
最简单直接的办法莫过于逐一遍历原生数组并将每一个元素依次加入目标容器内。
```cpp
#include <iostream>
#include <vector>
int main(){
char str_arr[]="hello";
std::vector<char> vect;
for(char c:str_arr){
if(c!='\0')//忽略字符串结尾符'\0'
vect.push_back(c);
}
for(const auto &ch:vect)
cout<< ch ;
}
```
这种方法虽然直观易懂但是当处理大量数据时可能会显得不够高效。
阅读全文
相关推荐


















