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

Не могу разобраться с map(STL) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Загрузка элементов списка из файла http://www.cyberforum.ru/cpp-beginners/thread703699.html
Элементы списка (однонаправленный или двунаправленный) содержат два информационных поля: идентификатор (id) - целое число; наименование (name) - строка (не более 255 символов). Помогите сделать загрузку элементов списка из текстового файла, в каждой строке которого указаны число (идентификатор), и через пробел набор символов (наименование). Добавлено через 23 часа 16 минут Есть идеи..?
C++ Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' С клавиатуры вводится строка. Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'', подсчитывает количество предложений, содержащих нечетное количество слов, удаляет из текста слова, которые расположены после запятых. Помогите пожалуйста!=) http://www.cyberforum.ru/cpp-beginners/thread703694.html
C++ футбол
Помогите пожалуйста! задана итоговая таблица чемпионата по футболу, в котором участвовало 8 команд. Элементы таблицы, принадлежащие главной диагонали, равны нулю, а все остальные элементы равны 0, 1 или 3 (т.е. числу очков, набранных в игре: 0 — поражение, 1 — ничья, 3 — победа). Определить и вывести на экран количество очков, набранных каждой командой, максимальное число очков, все команды,...
Найти произведение двух наибольших отрицательных чисел массива C++
Найти произведение двух наибольших отрицательных чисел массива help pls, вечно беда получается какая-то.. #include<iostream> using namespace std; void main(){ int i,k,c,x,p=1; cout<<"enter mass\n"; for(i=0;i<10;i++) cin>>x; for(k=0;k<10;k++)
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread703683.html
Помогите написать программу, я даже не знаю к чему взяться! Я с файлами пока не дружу! Спасибо всем кто откликнется) Дано текстовый файл, содержащий целые числа. Скопировать элементы файла в квадратную матрицу размером n × n (если элементов в файле хватает, то заполнить остальные элементы матрицы нулями). Поменять местами в каждой строке минимальный и максимальный элементы.
C++ Реализация стека. Но ошибка написала программу но выдает ошибку. #include <iostream> #include <conio.h> using namespace std; const int max_size=60; class Stack{ public: void push(int); int pop(); подробнее

Показать сообщение отдельно
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
20.11.2012, 22:06     Не могу разобраться с map(STL)
Недавно понадобилось использование ассоциативного массива map(STL), дабы сократить код программы. Но возникли сложности. В кратце в программе несколько структур, функции и операции с файлами. При использовании map в структурах и функциях получаются некорректные результаты. При этом аналогичный код написаный в main работает без ошибок. В чем может быть ошибка? Как заставить работать map в структурах и функциях?. Вот 2 примера(рабочий и нерабочий):

рабочий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//#include "main.h"
#include <iostream>
#include <map>
 
using namespace std;
 
int main() {
    map<char*,int> vars;
    map<char*,int>::const_iterator ip;
    char data[]="hello2";
    vars["hello1"]=2;
    vars[data]=4;
 
    for( ip = vars.begin(); ip != vars.end() ; ++ip ) {
        cout << ip->first << " = " << ip->second << endl;
    }
    getchar();
    return 0;
}
нерабочий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//#include "main.h"
#include <iostream>
#include <map>
 
using namespace std;
 
map<char*,int> vars;
 
void fill() {
    char data[]="hello2";
    vars["hello1"]=2;
    vars[data]=4;
}
 
void print() {
    map<char*,int>::const_iterator ip;
    for( ip = vars.begin(); ip != vars.end() ; ++ip ) {
        cout << ip->first << " = " << ip->second << endl;
    }
}
 
int main() {
 
    fill();
    print();
 
    getchar();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru