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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
#1

map - заполнение и удаление - C++

29.10.2013, 10:40. Просмотров 3577. Ответов 43
Метки нет (Все метки)

Хочу проинициализировать map случайными числами и вывести на экран.
Скажите, в чем ошибка?

Объявление:
C++
1
2
std::map <int, int> myMap;
std::map <int, int> :: iterator it = myMap.begin();
Инициализация случайными числами (подчеркивает красным "="):
C++
1
2
while (it != myMap.end())
    myMap.begin() = generateRandomNumber();
Вывод на экран (подчеркивает красным "["):
C++
1
2
for (myMap.begin(); it != myMap.end(); it++)
    std::cout << myMap[it] << " ";
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.10.2013, 22:29  [ТС]     map - заполнение и удаление #41
Решил представить решение из 22 поста в классе,
но почему-то возникает ошибка:
Член "ContainerProcessing::myMap" не является переменной

// *.h
C++
1
2
3
4
class ContainerProcessing {
  private:
      static map<int, int> myMap;
};
// *.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int ContainerProcessing::synchronizeContainers() {
    vector<int> original(myVector);
 
    myVector.erase(remove_if(myVector.begin(),
                             myVector.end(),
                             [&myMap](int v)  // Error: +2 перегрузок
        // Член "ContainerProcessing::myMap" не является переменной
        { return myMap.find(v) == myMap.end(); }), myVector.end());
    
    for(map<int, int>::const_iterator pos = myMap.begin();
        pos != myMap.end();) {
        if(find(original.begin(),
                original.end(),
                pos -> first) == original.end())
            pos = myMap.erase(pos);
        else
            ++pos;
    }
}
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 631
Регистрация: 29.11.2010
Сообщений: 11,750
29.10.2013, 23:06     map - заполнение и удаление #42
Цитата Сообщение от Tulosba Посмотреть сообщение
таких последовательностей будет 12!/(12-10)!
если порядок не важен (map и так и так отсортирует же)
Код
1 2 3 4 5 6 7 8 9 10 11
0 2 3 4 5 6 7 8 9 10 11
0 1 3 4 5 6 7 8 9 10 11
0 1 2 4 5 6 7 8 9 10 11
0 1 2 3 5 6 7 8 9 10 11
0 1 2 3 4 6 7 8 9 10 11
0 1 2 3 4 5 7 8 9 10 11
0 1 2 3 4 5 6 8 9 10 11
0 1 2 3 4 5 6 7 9 10 11
0 1 2 3 4 5 6 7 8 10 11
0 1 2 3 4 5 6 7 8 9 11
0 1 2 3 4 5 6 7 8 9 10
тут ответ такой: сколькими способами можно не взять одну различную цифру. Ответ 12, ошибся на 1

Добавлено через 4 минуты
При random_shuffle последовательность после сортировки заранее известна, тут же она случайна.
kamre
30.10.2013, 02:23
  #43

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Это дело привычки, для меня вполне естественно видеть полное имя функции.
Почему тогда не ::std::?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2013, 02:41     map - заполнение и удаление
Еще ссылки по теме:
Обращение к элементам vector, который находится в map, находящийся в map C++
C++ Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map?
C++ Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ?
C++ Как вставить map в map
C++ Emplace в std::map. Как добавить элемент в std::map без копирования?

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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 631
Регистрация: 29.11.2010
Сообщений: 11,750
30.10.2013, 02:41     map - заполнение и удаление #44
Цитата Сообщение от kamre Посмотреть сообщение
Почему тогда не ::std::?

Не по теме:

Потому что гладиолус. Надо отличать механизм от маразма.

Yandex
Объявления
30.10.2013, 02:41     map - заполнение и удаление
Ответ Создать тему
Опции темы

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