Форум программистов, компьютерный форум 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 сопсно вызываем и выводим изменёные...
C++ Определить в какой четверти будет больше всего точек из 10 введенных. http://www.cyberforum.ru/cpp-beginners/thread157138.html
Задание такое: Ввести 10 раз координат х, у и определить в какой четверти их будет больше всего. Вот мой код#include <stdafx.h> #include <cmath> #include <iostream> using namespace std; void...
C++ Уведомление об ошибке в функции... Есть функция которая в процессе выполнения получает значение t, если (t < 0) значения нет. Как уведомить об этом пользователя функции? Если сделать доп. функцию проверки, то вычисления будут... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
05.08.2010, 15:25  [ТС]
Мне пришлось присваивать константный идентификатор еще здесь:
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>>>,s td::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>>>,s td::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>>>,s td::allocator<std::pair<test::tree,std::pair<int,int>>>,false>
]
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru