Replace an element into a specific position of a vector

Viewed 199219

I want to replace an element into a specific position of a vector, can I just use an assignment:

// vec1 and 2 have the same length & filled in somehow
vec1;
vec2;

vec1[i] = vec2[i] // insert vec2[i] at position i of vec1

or I have to use insert():

vector<sometype>::iterator iterator = vec1.begin();

vec1.insert(iterator+(i+1), vec2[i]);
4 Answers

Don't use std::vector::insert if you want to use reserved memory and don't want to change the size of your buffer, try to use memcpy instead as below:

auto begin = static_cast<const uint8_t*>(data);
memcpy(&data_buffer[write_pos], begin, size);
Related