powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / использование STL в VC ++
5 сообщений из 5, страница 1 из 1
использование STL в VC ++
    #33004750
sdr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня проблем в следующем. Я недвано стал использовать VC++ 6.0. Написал простой пример использвания контейнера map. При компиляции мне выдает 36 предупреждений. Компилится все 4 уровне и "предупреждения как ошибки". Так как мне избежать этих предупреждений?

Вот пример:

#include <iostream>

#include <map>
#include <string>

using namespace std;

typedef map<int ,int > typeMAP;

void cout_map(typeMAP &Map)
{
cout<<"=========================================="<<endl;

for(typeMAP::iterator pMap=Map.begin(); pMap != Map.end(); ++ pMap)
{
cout<<"key: "<<pMap->first<<" value: "<<pMap->second<<endl;
}
}

int main ()
{

typeMAP my_map;

my_map.insert(std::make_pair(1,100));
my_map.insert(std::make_pair(2,200));
cout_map(my_map);



return 0;

}
...
Рейтинг: 0 / 0
использование STL в VC ++
    #33004897
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас не могу вспомнить (компилятора под рукой нет) номер, но это убирается с помощью #pragma ... - развернутые определения для map слишком длинные, длиннее 256 символов
...
Рейтинг: 0 / 0
использование STL в VC ++
    #33005932
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нельзя STL-ные программы на /W4 компилировать, потому что нескомпилируешь.
А так - #pragma warning ( 4012 : disable )
4012 - это номер варнинга.
...
Рейтинг: 0 / 0
использование STL в VC ++
    #33006247
dwl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dwl
Гость
1) а почему не VC 7.1, там варнинги и сообщения очень и очень поднятно пишутся. Никаких расшифвровщиков не надо.

2)по коду
Код: plaintext
1.
2.
my_map.insert(std::make_pair( 1 , 100 ));
my_map.insert(std::make_pair( 2 , 200 ));
мне кажется все же, могу быть неправ, вернее использовать map::value_type . Обясню почему. make_pair сделает тебе тип pair<int,int> , а у map тип который хранится в массиве map<const int, int> . Т.е. в случае с make_pair будет одна лишняя временная переменная.
...
Рейтинг: 0 / 0
использование STL в VC ++
    #33006562
dwl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dwl
Гость
Вот немного тестов относительно того что я сказал
Код: plaintext
1.
2.
3.
4.
5.
6.
(i)   map.insert(make_pair(key,value));
(ii)  map.insert(pair(key,value));
(iii) map.insert(map::value_type(key,value));
(iv) map.insert(p);       //p - pre-built pair
(v)  map[key] = value;
(vi) map.insert(p);      //p -pre-built pair, и ключ есть в контейнере
(vii) map[key] = value;    // существующие значение

не совсем честный тест, потому что заранее сконструированная "пара" - это тоже плюс один конструктор. Итог, без учета этого факта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
        key                         value
        ctor   cctor    dtor        ctor   cctor    dtor   assign op
(i)       -      4        3           -      4        3       -
(ii)      -      3        2           -      3        2       -
(iii)     -      2        1           -      2        1       -
(iv)      -      2        1           -      2        1       -
(v)       -      2        1           1      2        2       1
(vi)      -      1        1           -      1        1       -
(vii)     -      -        -           -      -        -       1
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / использование STL в VC ++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]