Итератор двухсторонней очереди C++, делаемый недействительным после push_front ()

Интересная идея, но я не знаю, сколько компаний пошло бы для нее. Я знаю, что мы не можем сделать этого, где я работаю теперь.

я думаю самая большая проблема, которую Вы собираетесь иметь с этим, то, что я нашел, что много людей обижается людям, не любящим их код. Это похоже на критику чьего-то терапевта, это - просто не хорошая идея быть посторонним и сделать это. Наблюдение кода и затем не устраивание на работу могли дать Вам репутацию, что Вы высокомерны или не достаточно хороши для работы над кодом, и вот почему Вы не устраивались на работу. Это могло бы сохранить Вас от получения задания, которое Вы не хотите, но это могло дать Вам отрицательную репутацию по линии. Я живу в значительном городе, но люди IT все еще знают друг друга и распространения слова. У людей в нашем поле есть эго, и это легче к мусору somoene репутация else, чем это должно признать, что кодируют Вас, записал, не в нормальном состоянии.

9
задан James McNellis 2 November 2009 в 01:04
поделиться

1 ответ

I think that the reason iterators get invalidated but references not might be because of the possible deque implementation of an array of pointers to the deque's pages that store the elements. A reference to an element in a deque will refer directly to the element in a 'page'. However, an iterator into the deque might be dependant on the vector of pointers that point to the various pages.

Inserting a new element into a deque at one or another end will never require reallocating and moving exsting data pages, but it might require adding to (and therefore reallocating & copying) the array of page pointers, invalidating any iterators that depended on the previous array of page pointers.

Array of pointers           
(if this grows                 Data Pages
 and gets copied,           (these never move
 iterators are invalid)      due to insert at ends)
-----------------          --------------------

 +----------+               +----------+
 |         -+-------------->|          |
 +----------+               +----------+
 |         -+---------+     |          |
 +----------+         |     +----------+
 |         -+---+     |     |          |
 +----------+   |     |     +----------+ 
                |     |
                |     |
                |     |
                |     |     +----------+
                |     +---->|          |
                |           +----------+
                |           |          |
                |           +----------+
                |           |          |
                |           +----------+ 
                |           
                |           +----------+
                +---------->|          |
                            +----------+
                            |          |
                            +----------+
                            |          |
                            +----------+ 
9
ответ дан 4 December 2019 в 21:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: