c++ 把数组元素copy到vector
在C++中,我们经常会遇到将数组中的元素复制到vector中的情况。Vector是C++标准库中的一种容器,它提供了动态数组的功能,可以方便地对元素进行添加、删除、访问等操作。本文将详细介绍如何实现将数组元素复制到vector中的方法。
方法一:使用循环遍历数组元素并逐个添加到vector中
最直观的方法是通过循环遍历数组,并逐个将数组中的元素添加到vector中。下面是一个示例代码:
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
std::vector<int> vec;
for(int i = 0; i < n; i++) {
vec.push_back(arr[i]);
}
// 输出vector中的元素
for(int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
运行结果:
1 2 3 4 5
在上面的代码中,我们首先声明一个数组arr
,然后通过循环遍历数组元素,并逐个将元素添加到vector中。最后,我们再次使用循环输出vector中的元素,可以看到成功将数组元素复制到vector中。
方法二:使用STL的std::copy
算法
除了使用循环遍历数组元素外,我们还可以使用STL的std::copy
算法来复制数组元素到vector中。std::copy
算法在<algorithm>
头文件中定义,它可以将指定范围内的元素复制到目标位置。下面是一个示例代码:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
std::vector<int> vec(n);
std::copy(std::begin(arr), std::end(arr), vec.begin());
// 输出vector中的元素
for(int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
运行结果:
1 2 3 4 5
在上面的代码中,我们首先声明一个数组arr
,然后声明一个大小为n
的vectorvec
。使用std::copy
算法,我们可以直接将数组arr
中的元素复制到vec
中。最后再次使用循环输出vec
中的元素,可以看到数组元素成功被复制到了vec
中。
方法三:使用std::vector
的构造函数
另一种简便的方法是使用std::vector
的构造函数,可以直接将数组元素复制到vector中。下面是一个示例代码:
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5};
std::vector<int> vec(std::begin(arr), std::end(arr));
// 输出vector中的元素
for(int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
运行结果:
1 2 3 4 5
在上面的代码中,我们利用std::vector
的构造函数,直接将数组arr
中的所有元素复制到vec
中。也可以使用std::vector<int> vec(arr, arr + sizeof(arr) / sizeof(arr[0]));
这种方式来实现相同的效果。
总结一下,本文介绍了在C++中将数组元素复制到vector的三种方法:使用循环遍历、使用STL的std::copy
算法、使用std::vector
的构造函数。在实际开发中,可以根据实际情况选择合适的方法来完成数组元素到vector的复制操作。