Форум программистов, компьютерный форум CyberForum.ru

std::map find. Получить ключ(элемент) и как записать все данные при объявлений? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Builder Работа с Timer-ом, что не так? http://www.cyberforum.ru/cpp-beginners/thread577409.html
Привет всем! Народ гляньте пожалуйста, кто шарить, что не так с кодом не работает Timer. Что делал:На форме две панели кнопка и Timer. В обработчик button1 разместил код приведенный ниже. В обработчик Timer OnTimer разместил код Timer1->interval=0; Как бы по логике программы все должно рабоать правильно но не срабатывает таймер почему то, может я то то не так делаю. Результат должен быть панели...
C++ Помощь в классе Привет всем, прошу помощи)) Вот имеется класс. Никак не могу додуматься как внедрить сюда сортировку: void add(int value) { int i; int* d; bool searching=true; for(i=0; (i<size)&&(searching); i++) if (data==value) http://www.cyberforum.ru/cpp-beginners/thread577408.html
C++ Удаление подстроки
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0. Если совпадающих подстрок нет, то вывести строку S без изменений. Помогите пожалуйста
C++ Задание по строкам
Составить программу, которая в заданном тексте после каждой буквы «б» добавляет буквы «як». Помогите пожалуйста с задачей
C++ количество плиток, которое можно уложить на заданную площадь http://www.cyberforum.ru/cpp-beginners/thread577393.html
Написать программу, вычисляющую количество плиток, которое можно уложить на заданную площадь Вводимые данные: а, b – размеры пола; c, d – размеры плитки; Добавлено через 1 час 8 минут нужен ответ срочно плз:)
C++ Написать функцию для определения числа вершин на n уровне дерева struct node { int info; int c; node *ll,*rl; }; node *tree(node *p,int w) { подробнее

Показать сообщение отдельно
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
18.05.2012, 12:14     std::map find. Получить ключ(элемент) и как записать все данные при объявлений?
vendeme, А вы юморист

Вы писали

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
 
int main()
{
    std::map<std::string, int> BookMap;
    BookMap["Pushkin"] = 0;
    BookMap["Esenin"] = 12;
    BookMap["Mayakovski"] = 16;
    std::cout<< BookMap.find("Mayakovski")->second;
    return 0;
}

Как нужно, если вам "наплевать" на порядок следования индексов (в итераторах) :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
 
int main()
{
    std::map<std::string, int> BookMap;
    BookMap["Pushkin"] = 0;
    BookMap["Esenin"] = 12;
    BookMap["Mayakovski"] = 16;
    if (BookMap.count("Mayakovski")==0) std::cout<<"INVALID KEY";else std::cout<<BookMap["Mayakovski"];
    system("PAUSE");
    return 0;
}
Только count долго проверяет, так что можно ещё через find вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
 
int main()
{
    std::map<std::string, int> BookMap;
    BookMap["Pushkin"] = 0;
    BookMap["Esenin"] = 12;
    BookMap["Mayakovski"] = 16;
    if (BookMap.find("Mayakovski")==BookMap.end()) std::cout<<"INVALID KEY";else std::cout<<BookMap["Mayakovski"];
    system("PAUSE");
    return 0;
}
И если грамотно то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
 
int main()
{
    std::map<std::string, int> BookMap;
    std::map<std::string, int>::iterator it;
    BookMap["Pushkin"] = 0;
    BookMap["Esenin"] = 12;
    BookMap["Mayakovski"] = 16;
    it=BookMap.find("Mayakovski");
    if (it==BookMap.end()) std::cout<<"INVALID KEY";else std::cout<<it->second;
    system("PAUSE");
    return 0;
}
 
Текущее время: 20:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru