今天写了一个测试程序:
std::array<int,16> myarray = {2,2,7,8,4,9,3,2,3,1,1,8,4,9,3,1};
std::vector<int> myvector;
myvector.resize(myarray.size());
copy_n(myarray.begin(), myarray.size(), myvector.begin());
for_each(myvector.begin(), myvector.end(), myprint);
刚开始没有用resize而是用的reserve,结果运行报错。后来意识到,reserve只是修改了vector的capacity而并不会修改size,如果添加元素需要insert,不能直接重写。而resize就是改变了vector的大小,可以直接写,不需要再用insert操作