![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| INHazeR |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
Первый раз постю на этом форуме, так что прошу прощения если нарушаю какие-то каноны данным тупым вопросом.
Дело в том, что я програмил на C# долгое время, а теперь по работе надо кое-что делать на C++, и надо разобраться с STL. Вопроса на самом деле два. 1. Необходимо объявить и использовать список объектов.
Класс CCandidate объявлен так:
При компиляции возникает около 33 ошибок и 136 предупреждений 2. Что такое map? Только не говорите что это ассоциативный контейнер и т.д., это все в мсдн написано Заранее спасибо за ответы. |
||||
|
|||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
INHazeR, как минимум std::list<CCandidate>. Это во-первых.
Дальше - ассоциативный массив. если смотреть по использованию, это почти "массив", только вместо целых ( как у std::vector ) в качестве индексов может выступать любой тип, поддерживающий операторы ==, < а также поддерживающий оператор копирования ( ничего не напутал? =) ), т.е std::map<std::string,unsigned>, например, это по сути говоря std::vector<std::string>, только наоборот.
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
INHazeR, В таком массиве сам указываешь какого типа будет индекс.
А ошибки какие? Это сообщение отредактировал(а) Xenon - 10.12.2006, 22:27 |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Xenon, typedef list<CCandidate, CCandidate> CNDLST; - это заставит компилятор поперхнуться туевой хучей ошибок, т.к. он ожидает вторым параметром аллакатор. Пока не поправлено это - про количество ошибок можно не говорить, да они и почти не читамые будут.. что-нить типа "не определен метод allocate у класса CCandidate"
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
zabivator, не обратил внимания
|
|||
|
||||
| INHazeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
zabivator
Зачем std::list? У меня же написано using namespace std; |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
INHazeR, в твоем случае - да, но вообще говоря, это плохой стиль. По рукам за такое бить. Попробуй пособирай проект, в котором МЕГАБАЙТЫ исходников, а из stl используется один list. Время копиляции увеличивается на несколько минут
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| INHazeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
ок, принял к сведению
исправил объявление на
Теперь уже только 3 ошибки: error C2275: 'CCandidate' : illegal use of this type as an expression error C2955: 'list' : use of class template requires template argument list fatal error C1903: unable to recover from previous error(s); stopping compilation |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
INHazeR, typedef std::list<CCandidate, &CCandidate> CNDLST; объясни мне, глупенькому, что ты хочешь этим сказать?
typedef std::list<CCandidate> CNDLST. - так надо, имхо. Или я что-то Пэ --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| INHazeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 8.12.2006 Репутация: нет Всего: нет |
zabivator
спасибо, что вразумил дурака тему можно закрывать |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
INHazeR, не дурак, просто новичок =))) Я и потупее ляпы делал когда начинал писать =)))
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |