将int数组的内容写入向量
Writing contents of a int array into a vector
我想将数组的内容写入向量中。
int A[]={10,20,30,40,50,60,70,80,90};
vector<int> my_vector;
早些时候,我曾使用memcpy将数组A的内容复制到另一个数组B中。我想使用my_vector而不是数组B
如何在没有for循环的情况下一次性将数组A的内容写入my_vector?
使用C++2011时,您希望使用
std::copy(std::begin(A), std::end(A), std::back_inserter(my_vector));
或
std::vector<int> my_vector(std::begin(A), std::end(A));
或者,实际上:
std::vector<int> my_vector({ 10, 20, 30, 40, 50, 60, 70, 80, 90 });
如果你没有C++2011,你想定义
namespace whatever {
template <typename T, int Size>
T* begin(T (&array)[Size]) { return array; }
template <typename T, int Size>
T* end(T (&array)[Size]) { return array + Size; }
}
并且将CCD_ 1和CCD_。
#include <algorithm>
#include <vector>
int main() {
int A[]={10,20,30,40,50,60,70,80,90};
std::vector<int> my_vector;
unsigned size = sizeof(A)/sizeof(int);
std::copy(&A[0],&A[size],std::back_inserter(my_vector));
}
C++11要简单得多。
#include <vector>
#include <algorithm>
int main() {
int A[]={10,20,30,40,50,60,70,80,90};
std::vector<int> my_vector(std::begin(A),std::end(A));
}
您可以使用memcpy
,也可以在C++98/03中使用此类初始化。
int A[]={10,20,30,40,50,60,70,80,90};
vector<int> my_vector(A, A + sizeof(A) / sizeof(*A));
也可以使用算法,例如copy
。
std::copy(A, A + sizeof(A) / sizeof(*A), std::back_inserter(my_vector));
在C++11中,使用std::begin(A)
、std::end(A)
作为数组的开始和结束。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- EASTL矢量<向量<int>>连续的
- 如何写向量的无序向量集,即unordered_set<向量<向量<int>>集合?
- 为什么我不能返回向量<向量<int>>(进程返回 -1073741819 (0xC0000005))
- 如何在没有循环的C++中总结向量 int 的向量
- C++:向量<向量<int>>迭代器?
- C++:在向量<int> vn{MyAllocator<int>(a)} 中调用哪些构造函数?
- 初始化一个类型向量的巨大向量<int>
- adjacent_difference算法,back_inserter向量<向量<int>>
- 如何在函数中将向量<int>v[n] 作为变速器传递?
- 将向量<int>转换为整数
- 如何正确地将向量<int>转换为空隙*并返回向量<int>?
- 有没有一种优雅的方法来读取二进制文件并将其内容复制到向量<int>
- 从<string>向量<int>中定义的索引处的向量中删除字符串
- 如何使用另一个"Eigen::VectorXd"向量中的值初始化"Eigen::VectorXd",基于索引的"向量<int>"
- 有没有办法将向量<double>*指向向量<int>?
- 如何在不复制的情况下更新 std::unordered_map<std::string, std::vector> 中的向量<int>?
- 向量的向量 int 向量
- 在向量中仅制作外部向量<向量<int>>固定
- 如何在 c++ 中将质因数向量<int >减少到映射<int,int>?