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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
dimakozyr
 Аватар для dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
29.10.2013, 10:40     map - заполнение и удаление #1
Хочу проинициализировать 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
 Аватар для 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
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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 - заполнение и удаление
Еще ссылки по теме:

Приведение map<int, B> к map<int, A> C++
C++ Map: заполнение, поиск
C++ Map of map

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
30.10.2013, 02:41     map - заполнение и удаление #44
Цитата Сообщение от kamre Посмотреть сообщение
Почему тогда не ::std::?

Не по теме:

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

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

Текущее время: 08:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru