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

Обход элементов std::map в порядке их создания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ WDK и Visual Studio 2008 http://www.cyberforum.ru/cpp/thread260057.html
Всем доброго времени суток. Скачал Windows DDK с майкрософта. Установил в C:\WinDDK\7600.16385.1 Включил в свойствах, (свойства конфигурации -> c\c++) Дополнительные каталоги включения: "C:\WinDDK\7600.16385.1\inc\crt\";"C:\WinDDK\7600.16385.1\inc\api\";"C:\WinDDK\7600.16385.1\inc\ddk\" #include <usbioctl.h> // только в WDK находится этот файл. ... bresult = DeviceIoControl(hDevice,...
C++ Прописать условия в IF Есть такая тема. Нужно вычислить делится ли определённое четырёхзначное число на ряд чисел. Причём нацело, т.е. без остатка. Если делится то в переменную Х записать одно число, если не делится - другое. Я планирую это реализовать в условии if. Как правильно сформулировать это кодом? http://www.cyberforum.ru/cpp/thread259987.html
C++ Вычислить и запомнить суммы и числа элементов каждой строки матрицы
вычислить и запомнить суммы и числа элементов каждой строки матрицы. результаты отпечатать в виде двух столбцов A(N,M) N<=20 M<=15
C++ Зацикливается при неверном вводе
есть такой кусочек while(true) { scanf("%d%c%d", &x, &zn, &y); switch (zn) { case '+': rez=x+y; break;
C++ Произвести проверку соблюдения баланса скобок http://www.cyberforum.ru/cpp/thread259819.html
Произвести проверку соблюдения баланса скобок вида ‘(‘, ’)’ в арифметическом выражении. Использовать системный стек. нужно на С
C++ Функции Составить процедуру, результатом работы которой является символ, заданный при обращении к этой процедуре, если этот символ не является буквой, и соответствующая строчная (малая) буква в противном. Добавлено через 16 минут код на С подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.03.2011, 20:49     Обход элементов std::map в порядке их создания
Evg, Ну да. Аналогично будет некорректным код.

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 <iostream>
#include <map>
#include <string>
 
int main()
{
    std::locale().global(std::locale(""));
    std::map<unsigned,std::string> arr;
    arr[10] = "abc";
    arr[7] = "def";
    arr[20] = "ghi";
    std::map<unsigned, std::string>::iterator it=++arr.begin();
    const_cast<unsigned&>(it->first)=999999;
    it=arr.find(20);
    if(it == arr.end())
    {
        std::cerr<<"Кирдык контейнеру. Изменение значения убило балансировку\n";
        return 1;
    }
    else
        std::cout<<"Все корректно, но это только пока\n";
    return 0;
}
Вообщем все, что нарушает возможность балансировки контейнера (а твой предикат это и делал) - убивает контейнер.
 
Текущее время: 06:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru