С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Требуется собрать кучу object в один контейнер и искать их по object_name - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно продублировать первое чётное число в односвязном списке http://www.cyberforum.ru/cpp-beginners/thread1232561.html
Написал вот такой код, он рабочий, но никак не пойму, что нужно сделать, чтоб выполнялась поставленная задача. Прошу помочь. #include "stdafx.h" #include <iostream> #include <string.h> #include...
C++ Как циклически организовать задание значений, пока не получится то, что надо Делал игру кубики нужно сделать ничью что бы когда выбивало два одинаковых значений перекручивало сначала если нету два одинаковых значения переходил к следующему сигменту кода http://www.cyberforum.ru/cpp-beginners/thread1232542.html
C++ Запись в ofstream - разобрать код
Доброго времени суток объясните как это работает? char msg; //что то записали в msg не важно как, суть в том что туда писали без символа \0, //и данных может быть меньше 255(больше 255 не может...
C++ Бинарный поиск (самое левое вхождение)
int binsearch (int a,int key, int l, int h) { int medium; medium=(l+h)/2; if (l>h) return (l); if (a>key) return (binsearch (a,key,l,medium-1)); else return (binsearch (a,key,medium+1,h));...
C++ Ошибка "C2065: сout: необъявленный идентификатор" http://www.cyberforum.ru/cpp-beginners/thread1232434.html
Привет! Создала свою первую программу,правда с помощью книги. Вылезла ошибка: \convert_main.cpp(32) : error C2065: сout: необъявленный идентификатор. Помогите разобраться. // // Программа для...
C++ Нужен алгоритм, который будет считать формулу, введённую пользователем в виде строки Задача такая: пользователь вводит с клавиатуры формулу, с заведомо неизвестным количеством переменных, а программа должна эту формулу посчитать. Я так понимаю, что строку нужно как-то отсортировать и... подробнее

Показать сообщение отдельно
Renji
2018 / 1386 / 312
Регистрация: 05.06.2014
Сообщений: 3,955

Требуется собрать кучу object в один контейнер и искать их по object_name - C++

23.07.2014, 14:09. Просмотров 707. Ответов 21
Метки (Все метки)

Пусть дана структура вида:
C++
1
2
3
4
5
6
7
8
struct object
{
    object(const std::string&_object_name):object_name(_object_name){}
    bool operator<(const object&o)const{return object_name<o.object_name;}
    bool operator<(const std::string&str)const{return object_name<str;}
    std::string object_name;
    char some_data[100500];
};
Требуется собрать кучу object в один контейнер и искать их по object_name. При этом хочется соблюдать следующие условия:
1) У object должен сохраниться доступ к своему object_name.
2) object_name не должен дублироваться в каких-то внутренних индексах контейнера (потому что возможен алгоритм обходящийся без дублирования). То есть, std::map хранящий ключ сортировки отдельно не подходит.
3) find(object_name) не должно требовать преобразования object_name из std::string в object (там some_data на 100500 байт).
4) Вставка нового элемента не должна делать ссылки на существующие элементы невалидными (отсортированный вектор object не подойдет).

Реализуемо ли это какими-то готовыми библиотеками (например, boost)? И ясно, вроде, что алгоритмически это ничем принципиально не отличается от std::set. Но как я понимаю, find в std::set<object> принимает только аргумент типа object. Пусть даже есть operator< позволяющий сравнивать object напрямую с std::string.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.