将int数组的内容写入向量

aja*_*ari 4 c++ stl vector

我想将数组的内容写入向量.

int A[]={10,20,30,40,50,60,70,80,90};
vector<int> my_vector;
Run Code Online (Sandbox Code Playgroud)

之前我曾经使用memcpy 将数组A的内容复制到另一个数组B. 我想使用my_vector而不是数组B.

如何在没有for循环的情况下一次性将数组A的内容写入my_vector?

Die*_*ühl 6

使用您想要使用的C++ 2011

std::copy(std::begin(A), std::end(A), std::back_inserter(my_vector));
Run Code Online (Sandbox Code Playgroud)

... 要么

std::vector<int> my_vector(std::begin(A), std::end(A));
Run Code Online (Sandbox Code Playgroud)

......或者,实际上:

std::vector<int> my_vector({ 10, 20, 30, 40, 50, 60, 70, 80, 90 });
Run Code Online (Sandbox Code Playgroud)

如果您没有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; }
}
Run Code Online (Sandbox Code Playgroud)

并使用whatever::begin()whatever::end()与前两种方法中的一个在一起.