Среда, 13 Ноября 2024, 13:17

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
проблемы с STL vector.
ТехникДата: Пятница, 02 Сентября 2011, 16:53 | Сообщение # 1
Глава X-ray Games
Сейчас нет на сайте
У меня такой вопрос, решил реализовать динамически расширяемый вектор со значениями собственного класса. Но при компиляции выдается ошибка. Я так понял, что проблема в типе значения - классе. Может чего-то я не понял. Вообще можно ли использовать свои классы как типы?
Code

std::vector<Axis_Math::cVector3<float>> vertexs;
//...
std::vector<Axis_Math::cVector3<float>>::iterator iter = vertexs.begin(),iter_end = vertexs.end(),iter1;

iter1 = std::find(iter,iter_end,index);  // index - индекс вершины,выдает ошибку
//...
froexДата: Пятница, 02 Сентября 2011, 17:05 | Сообщение # 2
Руководитель Froexilize team
Сейчас нет на сайте
>> - ставь пробел между этими символами. Компилятор старается отхватить максимальный кусок кода для интерпретации. Если нет пробела, то запись будет воспринята как оператор сдвига.
Правильный пример:
std::vector<std::vector<int> > - пробел есть

Учитесь писать, что за ошибка выдаётся. Телепатов не существует.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.


Сообщение отредактировал froex - Пятница, 02 Сентября 2011, 17:20
ТехникДата: Пятница, 02 Сентября 2011, 17:35 | Сообщение # 3
Глава X-ray Games
Сейчас нет на сайте

Quote (froex)
std::vector<std::vector<int> > - пробел есть

Я и так и через typedef.


Сообщение отредактировал Техник - Пятница, 02 Сентября 2011, 17:35
froexДата: Пятница, 02 Сентября 2011, 19:55 | Сообщение # 4
Руководитель Froexilize team
Сейчас нет на сайте
Quote (Техник)
Я и так и через typedef.

Не вижу.

Не разбираюсь в сообщениях Visual Studio ничуть.
Такой вопрос возник. vertexs - это ведь массив векторов. Я не помню, для контейнера vector определён оператор "=="? Ведь, чтобы использовать std::find(), необходимо определение операторов "==" и "!=":


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
ТехникДата: Суббота, 03 Сентября 2011, 09:36 | Сообщение # 5
Глава X-ray Games
Сейчас нет на сайте
если я работаю со встроенными типами, то ошибки нет. Причем с использованием std::find().
froexДата: Суббота, 03 Сентября 2011, 10:19 | Сообщение # 6
Руководитель Froexilize team
Сейчас нет на сайте
Техник, я думаю, что проблема именно в неопределенном логическом операторе над типом.
Axis_Math::cVector3 - я не могу найти спецификацию по этому классу. Можешь дать информацию, где копать? Я просто не могу помочь, т.к. не работал с этим классом. Если будет документация какая-то, то можно будет подумать.

Как выглядит std::find() я тебе написал. Подробней можешь на cplusplus.com посмотреть. Если Axis_Math::cVector3 - это массив, то std::find() не сможет работать с ним без определения логических операторов (сравнение и отрицание сравнения).

В общем, жду информации касательно Axis_Math::cVector3 :P


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
ТехникДата: Суббота, 03 Сентября 2011, 12:15 | Сообщение # 7
Глава X-ray Games
Сейчас нет на сайте
Axis_Math::cVector3f - это мой собственный класс 3d вектора в моем движке. Операторы проверки равенства и неравенства реализованы. Как работает find() я знаю, кратко, есть итераторная пара между которыми происходит поиск. Первый итератор сравнивается со значением третьего параметра.
froexДата: Суббота, 03 Сентября 2011, 12:16 | Сообщение # 8
Руководитель Froexilize team
Сейчас нет на сайте
Техник, скажи, пожалуйста, index какого типа?

Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
ТехникДата: Суббота, 03 Сентября 2011, 17:46 | Сообщение # 9
Глава X-ray Games
Сейчас нет на сайте
Quote (froex)
Техник, скажи, пожалуйста, index какого типа?

short
froexДата: Суббота, 03 Сентября 2011, 18:46 | Сообщение # 10
Руководитель Froexilize team
Сейчас нет на сайте
Quote (Техник)
short

Ты Axis_Math::cVector3 сравниваешь с short, получается.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг