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

STL std::set, std::pair, std::make_pair - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как написать макрос - модуль числа... http://www.cyberforum.ru/cpp-beginners/thread157244.html
Помогите написать макрос на с++, возвращающий модуль числа... Добавлено через 4 минуты Нашёл..
C++ Изменение значения статической переменной не дает =\ static char text; text = ""; error: expression must be a modifiable lvalue это же не конст, а просто статик, в pawn"е часто пользовался static и ок всё было http://www.cyberforum.ru/cpp-beginners/thread157228.html
Часы в псевдографике C++
доброго времени суток. задание заключается в написании программы, отображающую на экране текущее время в виде циферблата с секундной,минутной и часовой стрелками(разных цветов). и сохранять картинку в файле по желанию пользователя. заранее благодарен.
Модификация объекта string через ссылку и указатель C++
Создайте две функции: первая должна получать аргумент типа string*, вторая - srting&. Каждая функция должна изменять объект string своим способом. В функции main сопсно вызываем и выводим изменёные строки. #include <iostream> #include <string> void ukazatel(std::string* p) { }
C++ Определить в какой четверти будет больше всего точек из 10 введенных. http://www.cyberforum.ru/cpp-beginners/thread157138.html
Задание такое: Ввести 10 раз координат х, у и определить в какой четверти их будет больше всего. Вот мой код#include <stdafx.h> #include <cmath> #include <iostream> using namespace std; void main() { int I, II, III, IV, x, y, i; for (i=0; i<10; i++) { cout<<"Enter your coords:"<<endl;
C++ Уведомление об ошибке в функции... Есть функция которая в процессе выполнения получает значение t, если (t < 0) значения нет. Как уведомить об этом пользователя функции? Если сделать доп. функцию проверки, то вычисления будут проводится дважды... T3DPoint Ray_And_Plane_Intersection(TRay Ray, TPlane Plane) { float t =... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
05.08.2010, 15:25  [ТС]     STL std::set, std::pair, std::make_pair
Мне пришлось присваивать константный идентификатор еще здесь:
C++
1
2
3
4
5
6
    tree *forest::find(const std::string &Name) const {
        std::set<std::pair<tree,std::pair<int,int> > > :: iterator it;
        for (it = this->List.begin(); it != this->List.end(); ++it)
            if (it->first.getName() == Name) return const_cast<tree *>(&(it->first));
        return 0;
    }
Кроме того метод:
C++
1
2
3
4
5
6
7
8
    std::vector<tree *> forest::getTreeList() const {
        std::vector<tree *> res;
        std::set<std::pair<tree,std::pair<int,int> > > :: iterator it;
        for (it = this->List.begin(); it != this->List.end(); ++it)
            res.push_back(const_cast<tree *>(&(it->first)));
        std::sort(res.begin(), res.end(), sortFunc);
        return res;
    }
На wxDev-C++ под GCC компилируется без проблем, а на VS 2008 Express выдает ошибку:
e:\work\проект nautilus\new\test.hpp(150) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::_Tree<_Traits>::const_iterator' (or there is no acceptable conversion)
with
[
_Traits=std::_Tset_traits<std::pair<test::tree,std::pair<int,int>>,std::less<std::pair<test::tree,std::pair<int,int>>>,std::allocator<std::pair<test::tree,std::pair<int,int>>>,false>
]
c:\program files\microsoft visual studio 9.0\vc\include\xtree(498): could be 'std::_Tree<_Traits>::iterator &std::_Tree<_Traits>::iterator::operator =(const std::_Tree<_Traits>::iterator &)'
with
[
_Traits=std::_Tset_traits<std::pair<test::tree,std::pair<int,int>>,std::less<std::pair<test::tree,std::pair<int,int>>>,std::allocator<std::pair<test::tree,std::pair<int,int>>>,false>
]
while trying to match the argument list '(std::_Tree<_Traits>::iterator, std::_Tree<_Traits>::const_iterator)'
with
[
_Traits=std::_Tset_traits<std::pair<test::tree,std::pair<int,int>>,std::less<std::pair<test::tree,std::pair<int,int>>>,std::allocator<std::pair<test::tree,std::pair<int,int>>>,false>
]
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru