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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
#1

чего хочет компилятор? - C++

15.05.2011, 22:26. Просмотров 744. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const double radius = 5.0;
struct point {
    double x;
    double y;
};
double distance(point p1, point p2) {
    return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double getWeight(point field[], int size, point thePoint) {
    double weight=0;
    for(int i=0;i<size;i++)
        if(distance(field[i], thePoint)<=5)
            weight+=radius-distance(field[i], thePoint);
}
фрагмент кода. все понятно... ошибка:
Код
  In instantiation of `std::iterator_traits<point>': 
 instantiated from here 
129 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_iterator_base_types.h no type named `iterator_category' in `struct point' 
130 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_iterator_base_types.h no type named `value_type' in `struct point' 
131 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_iterator_base_types.h no type named `difference_type' in `struct point' 
132 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_iterator_base_types.h no type named `pointer' in `struct point' 
133 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_iterator_base_types.h no type named `reference' in `struct point'
какого....(( в чем дело? :S
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2011, 22:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос чего хочет компилятор? (C++):

Не пойму чего хочет компилятор - C++
Вот значит перепечатал буква в букву с книги Страуструпа такой код в main() . Этот кусок должен извлекать числа со строк, если это...

Компилятор не хочет компилировать - C++
Доброго дня. Начинаю изучать составные литералы в c++. Использую Microsoft Visual C++ 2010 Express. Ниже, собственно, код. Использую я...

Компилятор не хочет читать функиции. - C++
Мой компилятор когда я визываю функцию пишет ошибку. Скажите что делать.

Компилятор не хочет создавать экземпляр класса - C++
И пишет непонятные ошибки. В чем дело? template&lt;class T&gt;//шаблон класса class elem { public: template&lt;class T&gt; friend class...

Компилятор (wxDev-C++) не хочет воспринимать тип string - C++
Я начинающий, и только недавно начал изучать С++ по книге С. Девиса &quot;С++ для чайников&quot;. И один с одним из примеров у меня возникли...

Что говорит и что хочет компилятор? Linking stage skipped - C++
-------------- Clean: Debug in T (compiler: GNU GCC Compiler)--------------- Cleaned &quot;T - Debug&quot; -------------- Build: Debug in T...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Koste
26 / 26 / 0
Регистрация: 04.03.2011
Сообщений: 164
15.05.2011, 22:40 #2
Ты пользуешься stl библиотекой?
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
15.05.2011, 22:40  [ТС] #3
нет...
Koste
26 / 26 / 0
Регистрация: 04.03.2011
Сообщений: 164
15.05.2011, 22:45 #4
Но ошибку выдают именно они! Если в коде уверены, то попробуйте их убрать из проекта
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.05.2011, 22:46 #5
Очень странно. Пока в голову приходит только перезапустить среду...
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
15.05.2011, 22:46  [ТС] #6
вот полный код програмы:
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 <math.h>
using namespace std;
const double radius = 5.0;
struct point {
    double x;
    double y;
};
double distance(point p1, point p2) {
    return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double getWeight(point field[], int size, point thePoint) {
    double weight=0;
    for(int i=0;i<size;i++)
        if(distance(field[i], thePoint)<=5)
            weight+=radius-distance(field[i], thePoint);
}
int main() {
    point p1 = {0,0};
    point p2 = {1,1}; 
    cout<<distance(p1, p2);
    return 0;
}
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.05.2011, 22:48 #7
Убираем using namespace std;, используем явное разрешение пространства имён... Видать, где-то в std уже есть какое-то и использованное вами имя.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2011, 22:48 #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
nikkka, думаю, компилятор в 12 строке подразумевает вызов функции distance.
Koste
26 / 26 / 0
Регистрация: 04.03.2011
Сообщений: 164
15.05.2011, 22:49 #9
А какая среда?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2011, 22:50 #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от silent_1991 Посмотреть сообщение
Убираем using namespace std;
Я бы даже сказал забываем навсегда про существование подобной конструкции.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
15.05.2011, 22:51 #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Уже миллион раз говорилось, не следует использовать using namespace std(во всяком случае не глобально)
distance
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
15.05.2011, 22:52  [ТС] #12
всем спасибо, ошибка найдена, тема закрыта.
silent_1991
15.05.2011, 22:53     чего хочет компилятор?
  #13

Не по теме:

В последнее время вижу всё больше и больше подтверждений того, что пространства имён ввели не для того, чтобы от них юзингом в первых строчках кода избавляться))) Справедливость торжествует)))

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2011, 22:53
Привет! Вот еще темы с ответами:

Мой компилятор не принимает "getline" и не хочет массив объявлять peson p[a] - C++
Какие ошибки у меня в программе и как мне их исправить ? Мой компилятор не принимает &quot;getline&quot; и не хочет массив объявлять peson p ...

Компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7. Посоветуйте другой компилятор - C++
Здравствуйте! Я недавно начал заниматься С++, но мой компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7 Посоветуйте какой...

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять. - C++
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

НЕ хочет компилировать - C++
Найдите пожалуйста ошибку, и можете объяснимть почему void mul( int x, int y) ставнять не в фигурные скобки?(код с Herbert Schild) ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.05.2011, 22:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru