Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчёт введённых слов, Страуструп 
:(
    Опции темы
stat007
Дата 31.3.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



Изучаю сейчас книгу С++ 3 издание, Страуструпа. И дошёл до тему: Ссылки.
Кароче в этой главе есть хороший примерчик программы, которая считает количество введённых слов. Написал эту программу в своём компиляторе, но компилятор ругается на строки в коде, где описаны циклы for, хатя ж вроде код написан правильно! Может Вы найдёте ошибку.. smile 
Код

#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct Pair
{
    string name;
    double val;
};
vector<Pair> pairs;
double& value(const string& s)
{
    for(int i=0; i<pairs.size(); i++)
        if(s==pairs[i].name)
            return pairs[i].val;
    Pair p={s,0};
    pairs.push_back(p);  //добавить пару в конец
    return pairs[pairs.size()-1].val;
}
int main()
{
    string buf;
    while(cin>>buf)
        value(buf)++;
    for(vector<Pair>:const_iterator p=pairs.begin(); p!=pairs.end(); ++p)
        cout<<p->name<<": "<<p->val<<endl;

    system("pause");
    return 0;
}


PM MAIL   Вверх
EvilsInterrupt
Дата 31.3.2010, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



stat007, Could you write error text, please ?
PM MAIL WWW ICQ Jabber   Вверх
stat007
Дата 31.3.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



EvilsInterrupt, Error text...
Цитата

1>------ Построение начато: проект: Подготовка, Конфигурация: Debug Win32 ------
1>Компиляция...
1>Main.cpp
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(13) : warning C4018: <: несоответствие типов со знаком и без знака
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2059: синтаксическая ошибка: пустое объявление
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2143: синтаксическая ошибка: отсутствие ";" перед ":"
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2143: синтаксическая ошибка: отсутствие ";" перед ":"
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2143: синтаксическая ошибка: отсутствие ")" перед ":"
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2143: синтаксическая ошибка: отсутствие ";" перед ":"
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2065: p: необъявленный идентификатор
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2065: p: необъявленный идентификатор
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(25) : error C2059: синтаксическая ошибка: )
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(26) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "cout"
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(26) : error C2065: p: необъявленный идентификатор
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(26) : error C2227: выражение слева от "->name" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>        тип: 'unknown-type'
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(26) : error C2065: p: необъявленный идентификатор
1>c:\users\женя\documents\visual studio 2008\projects\подготовка\подготовка\main.cpp(26) : error C2227: выражение слева от "->val" должно указывать на тип класса, структуры или объединения либо на универсальный тип
1>        тип: 'unknown-type'
1>Журнал построения был сохранен в "file://c:\Users\Женя\Documents\Visual Studio 2008\Projects\Подготовка\Подготовка\Debug\BuildLog.htm"
1>Подготовка - ошибок 13, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

PM MAIL   Вверх
EvilsInterrupt
Дата 31.3.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



1) ну не ужели не понятно, что ты size() это один тип, а ты его сравниваешь с другим?
2) забыл в "vector<Pair>:const_iterator" исшо одно двоеточко!

думаю если бы глянул в ошибки по внимательней, понял сам бы ! ;)
PM MAIL WWW ICQ Jabber   Вверх
borisbn
Дата 31.3.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(stat007 @  31.3.2010,  17:47 Найти цитируемый пост)
for(vector<Pair>:const_iterator p=pairs.begin(); p!=pairs.end(); ++p)

замени на 
Код

for(vector<Pair>::const_iterator p=pairs.begin(); p!=pairs.end(); ++p)


Это сообщение отредактировал(а) borisbn - 31.3.2010, 18:32


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
sdukshis
Дата 31.3.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 23.3.2009

Репутация: нет
Всего: 1



ошибка в 25 строчке
Код

vector<Pair>::const_iterator p=pairs.begin()


PM MAIL   Вверх
EvilsInterrupt
Дата 31.3.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



borisbn, йа первей! бе-бе-бе! ;)))
PM MAIL WWW ICQ Jabber   Вверх
borisbn
Дата 31.3.2010, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



EvilsInterrupt, ну... поздравляю. но я ещё работаю smile


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
stat007
Дата 31.3.2010, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



EvilsInterrupt, да просто книга так напечатана, еле разбираюсь, много чего стёрто в ней..
Со второй ошибкой разобрался! А вот с первой так и не понял, что нужно тогда написать вместо size() ?
PM MAIL   Вверх
EvilsInterrupt
Дата 31.3.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



stat007, у тебя в коде:

for(int i=0; i<pairs.size(); i++)

i типа int, , а size() какой тип возвращает ? Вот теперь тебе надо раз и навсегда запомнить "С++ это строго-типизированный язык". Это означает что int и  то что возвращает size не совместимы, поэтому компиллер тебя предупреждает, что может быть бага!
PM MAIL WWW ICQ Jabber   Вверх
stat007
Дата 31.3.2010, 18:54 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



EvilsInterrupt, понятно, ну тогда странно, почему же в самом авторе языка, т.е. в его книге допущена такая ошибка.. smile 
и я так и не понял, что нежно написать, что бы программа всё-таки сработала?
Пробовал написать: end(), length(), и просто число 100, ничего не подходит! smile 
PM MAIL   Вверх
bsa
Дата 1.4.2010, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



stat007, Страуструпа не рекомендуют читать новичкам! В часто задаваемых вопросах есть список литературы в нужном порядке. Следуй ему.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.