|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.08.2010, 19:14 | #1 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Призрачные контейнеры?
Допустим у меня есть
vector<pair<string, int> > base; Мне нужно его выдавать как отсортированным по первому значению, так и по второму. Можно ли иметь ещё пару vector<pair<string, int> > ghost; но так что-бы их элементы были значениями базового, вектора? И изменения в базовом векторе приводили к изменениям в его призраках. То есть что-бы я мог один призрак держать отсортированным по первому значению пары, второй по второму. И мог каждый из них быстренько досортировать при изменениях базового вектора. А вносить изменения через базовый вектор. Тоесть и волки целы и овцы сыты. |
29.08.2010, 19:28 | #2 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Можно вызывать функцию, корректирующую вектора после каждого изменения в базовом векторе, а можнопопробовать так:
Код:
Код:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
29.08.2010, 19:30 | #3 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
А выдавать именно в таком виде: vector<pair<string, int> > ?
Syuf, в векторах нельзя держать ссылки. Последний раз редактировалось Stilet; 30.08.2010 в 10:13. |
29.08.2010, 19:45 | #4 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Carbon
Цитата:
vector<pair<vector<string>, int> > base; P.S. Блин, казалось бы такая лёгкая задача. P.P.S. Я наверно не буду пока этим запариваться, а сделаю по тупому. В одном контейнере набор уникальных фраз Во втором отображение-счётчик. А третий получу просто свопнув и отсортировав второй. Дёшево и сердито. |
|
29.08.2010, 21:09 | #5 | |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Цитата:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
|
29.08.2010, 21:11 | #6 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Указатели можно. Единственное, что нельзя, так это ссылки (обычные и константные) и объекты классов без конструкторов копирования.
|
30.08.2010, 09:43 | #7 | |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Цитата:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
|
30.08.2010, 10:33 | #8 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Хах. Естественно можно. Имел в виду с закрытыми конструкторами копирования.
|
30.08.2010, 11:52 | #9 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
А, ну это ясно, я просто не понял.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
30.08.2010, 16:17 | #10 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Так, гуры. Почему этот код не работает?
Код:
Если сначала выделить память под переменную то всё пашет. pair<string, int> * para = new pair<string, int>("green", 9); Это связано с тем что эта самая пара находится в константной области? P.P.S. Ага, можно вот так вот: ghost.push_back( new pair<string, int>("green", 9) ); Последний раз редактировалось the_deer_one; 30.08.2010 в 16:22. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Контейнеры С++ | Helen09 | Помощь студентам | 0 | 29.05.2010 13:01 |
[C++] контейнеры классы и работа с текстом | ArniLand | Общие вопросы C/C++ | 6 | 08.03.2010 02:25 |
Совместимы ли вообще TImage и стандартные контейнеры? | Гром | Общие вопросы C/C++ | 1 | 03.10.2009 22:42 |
Контейнеры | Crucian | Общие вопросы C/C++ | 1 | 22.09.2007 22:02 |