C’è un modo per aggiungere valori al centro di un vector
in C ++? Dì che ho:
vector a; // a gets filled up with "abcd", "wertyu", "dvcea", "eafdefef", "aeefr", etc
e voglio spezzare una delle corde e rimettere tutti i pezzi nel vector
. Come potrei farlo? le stringhe che spezzo possono essere ovunque, index = 0, da qualche parte nel mezzo, o index = a.size() - 1
.
Puoi inserire in un vector
in posizione i
scrivendo
v.insert(v.begin() + i, valueToInsert);
Tuttavia, questo non è molto efficiente; funziona in tempo proporzionale al numero di elementi dopo l’inserimento dell’elemento. Se stai pianificando di dividere le stringhe e di aggiungerle di nuovo, è molto meglio usare una std::list
che supporta O (1) inserimento e cancellazione ovunque.
Puoi farlo, ma sarà molto lento:
int split = 3; // where to split a.insert(a.begin()+index, a[index].substr(0, split)); a[index+1] = a[index+1].substr(split);