当我尝试将固定大小的数组复制到默认构造的向量时,我得到了段错误。我很困惑,因为我一直认为向量是灵活的容器,可以根据吸收的动态数据调整大小。如果我在编译时为矢量分配空间复制工作,但我如何将此数组复制到矢量中而不在编译时分配大小?
int numbersArr[] {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
vector<int> NumbersVec; //Default constructor
// vector<int> NumbersVec(10); If I allocate the memory in compile time it works
copy(numbersArr, numbersArr + 10, NumbersVec.begin()); //Segmentation fault (core dumped)
目标数组需要有足够数量的元素作为源数组。因此,可以在下面添加新的元素。
#include <iterator>
copy(numbersArr, numbersArr + 10, back_inserter(NumbersVec));
"