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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
behollder
47 / 28 / 8
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
#1

Map stl - C++

11.02.2013, 20:00. Просмотров 798. Ответов 8
Метки нет (Все метки)

Не могу понять, почему не находит через h1.find(argv[1]). когда argv[1] == "-o"
vs пишет "itr = (0xcdcdcdcd <Ошибка при чтении символов строки.>, true (205))"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(int argc, char** argv)
{
    std::map<char*, bool>h1;
    h1.insert(pair<char*, bool>("-o", true));
    h1.insert(pair<char*, bool>("-a", false));
    std::map<char*, bool>::const_iterator itr;
    //itr = h1.find("-o"); // работает
    //itr = h1.find(argv[1]); // не работает
    if(itr != h1.end())
        cout << itr->first << "\n" << itr->second;
    else cout << "Not found";
 
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 20:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Map stl (C++):

stl map - C++
где можно прочитать о stl map? подскажите книги..

STL map - C++
Вопрос:как мне узнать что не создавался map с заданым str? #include &lt;iostream&gt; #inlclude &lt;map&gt; #include &lt;string&gt; using namespace...

STL :: map - C++
Столкнулся с такой проблемой: Нужно вставить в отсортированную map-таблицу элемент. Использую: myMap.insert(myIterator,pair&lt;type1,...

Вопрос об map STL - C++
Как вивести map? list&lt;int&gt; l; for (int i=1; i&lt;=5; i++) l.push_back(i); map&lt;int,list&lt;int&gt;&gt; a; int d = 9; int f = 5; ...

STL. Map, vector. Строки - C++
Здравствуйте. Почти не знаком с STL. Имеется вектор строк. Нужно найти частоту использования каждой буквы. Я уже который...

Не могу разобраться с map(STL) - C++
Недавно понадобилось использование ассоциативного массива map(STL), дабы сократить код программы. Но возникли сложности. В кратце в...

8
Vourhey
Почетный модератор
6490 / 2264 / 123
Регистрация: 29.07.2006
Сообщений: 12,534
11.02.2013, 20:01 #2
Цитата Сообщение от greenlight Посмотреть сообщение
char*
указатель, а не строка. Ищешь ты не содержимому строки, а по адресу, что в указателе, подозреваю.
0
Wolkodav
609 / 462 / 33
Регистрация: 18.09.2012
Сообщений: 1,688
11.02.2013, 20:43 #3
Это вообще говоря странно, а вы там точно передаёте аргумент в argv? Проверьте перед вызовом find argv[1]
0
Toshkarik
1148 / 865 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
11.02.2013, 21:06 #4
Потому что char * это указатель а не строка. Используйте std::string.
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.02.2013, 21:09 #5
Цитата Сообщение от Toshkarik Посмотреть сообщение
Используйте std::string
или компаратор
1
behollder
47 / 28 / 8
Регистрация: 23.01.2013
Сообщений: 125
Завершенные тесты: 1
11.02.2013, 22:14  [ТС] #6
Всем спасибо. Я понял.
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
12.02.2013, 00:29 #7
И забудь про строки в форме char*, раз уж пользуешься такими высокоуровневыми абстракциями, как map.
0
Mиxaил
534 / 439 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
12.02.2013, 01:00 #8
и лучше использовать std::make_pair() .
0
kravam
быдлокодер
1705 / 892 / 45
Регистрация: 04.06.2008
Сообщений: 5,524
12.02.2013, 04:26 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <map> 
#include <utility> 
#include <string> 
#include <iostream> 
#include <stdio.h> 
using namespace std;
 
 
int main(int argc, char** argv)
{
    std::map<string, bool>h1;
    h1.insert(pair<string, bool>("-o", true));
    h1.insert(pair<string, bool>("-a", false));
    std::map<string, bool>::const_iterator itr;
    //itr = h1.find("-o"); // работает
    itr = h1.find(argv[1]); // не работает
    if(itr != h1.end())
        cout << itr->first << "\n" << itr->second;
    else cout << "Not found";
 
    getchar();
    return 0;
}
0
12.02.2013, 04:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 04:26
Привет! Вот еще темы с ответами:

STL(map). Где инициализировать массив? - C++
Для начала: не получалось данную тему назвать более логично, сайт не пропускал :-| Добрый день. Имеется: map&lt;int, string&gt;...

Stl стандартная библиотека шаблонов c++ map - C++
Доброго всем времени суток :) Помогите пожалуйста дописать прогу. Нужно добавить сортировку по фамилии (что бы выводились в алфавитном...

Map STL - максимальный объем памяти - C++
Пишу модуль для программы - что-то вроде переводчика. Есть словарь синонимов (40+мб). Загружаю его в map, но после 740000+ ключа,...

Контейнер map и алгоритмы STL: несовместимость? - C++
Всем доброго времени суток! Столкнулся с проблемой: алгоритм remove_if не работает с контейнером map. Рассмотрим следующую функцию: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru