我有一个 std::vector。我像这样分配这个向量
vec.assign(20000, 0);
现在我有一个额外的数组,我想将它插入到向量中。但不仅仅是插入,更多替换向量中的元素。
uint8_t a[] = {1,2,3,4,5,6,7,8};
将该数组移动到位置 x - x+8 上的向量中,而不分配新内存。
我尝试和工作的当然是
vec.insert(start, a, a+8);
但是在那里我分配了新的内存并且向量的大小发生了变化,这是不应该发生的。是的,我可以删除太多的条目,但仍然存在问题,我分配了更多的内存。是否有可能只用向量的内容替换数组?像这样:
vec.replace(start, a, a+8);
我想避免更换每个元素,因为我担心这可能需要太长时间。
你怎么看?有没有办法做到这一点?你以前也遇到过这个问题吗?你怎么修好它的?