Векторные значения не в порядке вставки - PullRequest
0 голосов
/ 27 января 2011

Я вставляю значения в вектор:
vector<map<vector<string> , vector<string> > > listedParameterMap;

как это:
listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap);

Если я проверю позже вектор, порядок инвертируется. Я что-то пропустил?

EDIT:
Я думаю, что это может быть где-то еще ... У меня только есть идея. Но я попробую завтра. У меня почти сегодня был хотя бы один переполнение мозгового стека с моим кодом;)

В любом случае, спасибо всем за помощь. Я скажу, если что-то изменится!

EDIT2:
Похоже, ошибка в другом месте. Я просто мог видеть, где это происходит, но до сих пор не почему. В точке, где карта должна быть заполнена только один раз, она заполняется дважды. Почему-то каждый раз только по определенному значению. Вот почему это выглядело как инвертированные значения.
Если мне понадобится помощь, я открою новый вопрос. Спасибо всем!


UPDATE:

С вектором все в порядке. Нашел проблему. Слепота собственного кода;)

Это не влияет на мою программу, моя карта перевернута.
Я только что создал новую карту, вставляя, а затем распечатывая значения, тогда все работает как положено.

Ответы [ 3 ]

7 голосов
/ 27 января 2011

Почему бы вам просто не написать:

listedParameterMap.push_back(parameterMap);

Это более простой интерфейс, чем то, что вы делаете в своем посте.

2 голосов
/ 27 января 2011

Я не очень разбираюсь в вашем примере кода, но если вы хотите вставить элементы в вектор по порядку, вы обычно хотите использовать push_back.Для тривиального примера:

std::vector<int> numbers;
for (int i=0; i<10; i++)
    numbers.push_back(i);

Теперь числа должны быть в порядке, например: (1 2 3 4 5 6 7 8 9 10).

0 голосов
/ 27 января 2011

Я действительно не думаю, что вы хотите сделать карту, которая использует вектор в качестве ключа, не так ли? Это пахнет, как будто у вас есть более серьезные проблемы с дизайном.

Что касается добавления материала к векторам в известном (и предварительно установленном порядке), используйте push_back ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...