powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / std::map, как достать последний добавленный?
15 сообщений из 15, страница 1 из 1
std::map, как достать последний добавленный?
    #34982786
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как получить указатель на последнюю добаленную пару std::map ?
делаю так:

Код: plaintext
iter = --map_general.end();

но видимо оно внутри пересортировывается, поэтому не всегда получаю то, что надо, если конечно причина в этом
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34982829
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Канечно сортируются.
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34982837
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал получение итератора сразу чере std::pair, но все же было бы неплохо узнать, есть ли возможность в любой момент получить итератор на последнюю добавленную пару?
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34982923
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrikно все же было бы неплохо узнать, есть ли возможность в любой момент получить итератор на последнюю добавленную пару?

Только полным перебором и искать по своему идентификатору (признаку).
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34982971
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчёт полного перебора - это сгоряча, сгоряча...

Если запоминаешь ключ, то можно пользоваться iterator find(const key_type& k)

ну, а если нет, то вот такое вполне сойдёт

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    std::map<int, int> m;
    m[ 0 ] =  7 ;
    
    std::map<int, int>::iterator ii = m.insert(m.begin(), std::pair<int, int>( 1 ,  8 ) );
    
    ii->second =  777 ;
    
    cout << m[ 1 ];

...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983024
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man_555Насчёт полного перебора - это сгоряча, сгоряча...

Согласен, малесь погорячился... :)
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983070
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man_555Насчёт полного перебора - это сгоряча, сгоряча...

Если запоминаешь ключ, то можно пользоваться iterator find(const key_type& k)

ну, а если нет, то вот такое вполне сойдёт

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    std::map<int, int> m;
    m[ 0 ] =  7 ;
    
    std::map<int, int>::iterator ii = m.insert(m.begin(), std::pair<int, int>( 1 ,  8 ) );
    
    ii->second =  777 ;
    
    cout << m[ 1 ];


map::insert() возвращает пару pair<iterator,bool>
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983090
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded man_555Насчёт полного перебора - это сгоряча, сгоряча...

Если запоминаешь ключ, то можно пользоваться iterator find(const key_type& k)

ну, а если нет, то вот такое вполне сойдёт

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    std::map<int, int> m;
    m[ 0 ] =  7 ;
    
    std::map<int, int>::iterator ii = m.insert(m.begin(), std::pair<int, int>( 1 ,  8 ) );
    
    ii->second =  777 ;
    
    cout << m[ 1 ];


map::insert() возвращает пару pair<iterator,bool>

Ну и что?
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983098
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded man_555Насчёт полного перебора - это сгоряча, сгоряча...

Если запоминаешь ключ, то можно пользоваться iterator find(const key_type& k)

ну, а если нет, то вот такое вполне сойдёт

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    std::map<int, int> m;
    m[ 0 ] =  7 ;
    
    std::map<int, int>::iterator ii = m.insert(m.begin(), std::pair<int, int>( 1 ,  8 ) );
    
    ii->second =  777 ;
    
    cout << m[ 1 ];


map::insert() возвращает пару pair<iterator,bool>

Tubrikсделал получение итератора сразу чере std::pair

я так и сделал, всем спасибо
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983170
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedmap::insert() возвращает пару pair<iterator,bool>

Эх давайте тогда уточним, что insert имеет три прототипа. Для возвращаемой пары совсем другой прототип: pair<iterator, bool> insert(const value_type& x), в моём же примере возвращается только итератор, так что намёка не понял...
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983411
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да никаких намеков, просто эта форма возвращает итератор без информации толи такое значение ключа уже было толи его только что добавили. Соотв нет гарантии что second той самый что добавляли
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983427
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedДа никаких намеков, просто эта форма возвращает итератор без информации толи такое значение ключа уже было толи его только что добавили. Соотв нет гарантии что second той самый что добавляли

т.е. если он уже был (соотв. не добавился) то что вернет в second? разве не ранее добавленный second?
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983434
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ранее
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983445
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedранее

в моем случае это все равно достигает цели
...
Рейтинг: 0 / 0
std::map, как достать последний добавленный?
    #34983463
man_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я что? Против? :-)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / std::map, как достать последний добавленный?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]