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

Классы в структуре - C++

Восстановить пароль Регистрация
 
broDiaga_cpp
 Аватар для broDiaga_cpp
19 / 9 / 1
Регистрация: 20.02.2010
Сообщений: 180
01.08.2013, 19:37     Классы в структуре #1
Добрый вечер.
Вопрос первый: какой из контейнеров STL наиболее целесообразней использовать, если предполагаются частые операции поиска в этом контейнере?

Вопрос второй: полагаю, что ответ на первый вопрос будет - map, и если это так, то у map есть ключ и значение. Так вот... Ключ у меня описывается двумя объектами одного класса. Как мне это сделать. Самое логичное, что приходит на ум, это сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class property1
{
//содержимое класса
};
 
class property2
{
//содержимое класса
};
 
struct object
{
property1 pr1;
property2 pr2;
};
 
//И объявляем наш контейнер
std::map<object,int> container;
Но так, если я правильно всё понимаю, мы сделать не можем. Как быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 19:37     Классы в структуре
Посмотрите здесь:

Как в структуре задать массив строк фиксированного размера? C++
ошибка в структуре C++
C++ структура в структуре
C++ Суммирование в структуре
Сортировка в структуре C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2013, 19:52     Классы в структуре #2
Цитата Сообщение от broDiaga_cpp Посмотреть сообщение
Но так, если я правильно всё понимаю, мы сделать не можем.
Почему? Не компилируется?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,845
Записей в блоге: 2
Завершенные тесты: 1
01.08.2013, 19:54     Классы в структуре #3
Ну так еще как минимум нужна функция сравнения для определения эквивалентности(не равенства) элементов.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.08.2013, 20:06     Классы в структуре #4
Цитата Сообщение от Croessmah Посмотреть сообщение
Ну так еще как минимум нужна функция сравнения для определения эквивалентности(не равенства) элементов.
если мне не изменяет память, функция сравнения должна быть что-то вроде "operator <"
смутно помню. Но где-то оператора == вроде было недостаточно в этих контейнерах. Я не прав?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
01.08.2013, 20:20     Классы в структуре #5
Цитата Сообщение от broDiaga_cpp Посмотреть сообщение
какой из контейнеров STL наиболее целесообразней использовать, если предполагаются частые операции поиска в этом контейнере?
unordered_map - понадобиться для ключа определить operator == и хэш-функцию; только в новом стандарте (С++11).
map - для ключа нужен только operator <, сложность поиска хуже.
Yandex
Объявления
01.08.2013, 20:20     Классы в структуре
Ответ Создать тему
Опции темы

Текущее время: 11:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru