我想将数组的内容写入 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; }
}
并使用 whatever::begin()
和 whatever::end()
以及前两种方法之一。
关于c++ - 将 int 数组的内容写入 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12242546/