У меня есть переменная std::vector<T>
. У меня также есть две переменные типа T, первая из которых представляет значение в векторе, после которого я должен вставить, а вторая представляет значение для вставки.
Допустим, у меня есть этот контейнер: 1,2,1,1,2,2
И эти два значения равны 2 и 3 по отношению к их определениям выше. Затем я хочу написать функцию, которая будет обновлять контейнер, чтобы он содержал:
1,2,3,1,1,2,3,2,3
Я использую С++ 98 и Boost. Какие стандартные или повышающие функции я могу использовать для реализации этой функции?
Итерация по вектору и использование std::insert — это один из способов, но он становится беспорядочным, когда вы понимаете, что вам нужно не забыть перепрыгнуть через значение, которое вы только что вставили.
std::list
, то вы в чем-то правы: он использует не удвоенный объем памяти, а тройной объем памяти. Каждый узел содержит два указателя в дополнение к фактическим данным, и в типичном случае все три имеют одинаковый размер. - person Jerry Coffin   schedule 15.08.2013v.end()
. См. что происходит с gcc. - person jrok   schedule 15.08.2013