我想将数组的内容写入向量.
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?
使用您想要使用的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()与前两种方法中的一个在一起.
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |