Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Показать сообщение отдельно
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
18.05.2012, 12:14
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;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru