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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно продублировать первое чётное число в односвязном списке http://www.cyberforum.ru/cpp-beginners/thread1232561.html
Написал вот такой код, он рабочий, но никак не пойму, что нужно сделать, чтоб выполнялась поставленная задача. Прошу помочь. #include "stdafx.h" #include <iostream> #include <string.h> #include <conio.h> using namespace std; //описание структуры struct point { int num;//информационное поле
C++ Как циклически организовать задание значений, пока не получится то, что надо Делал игру кубики нужно сделать ничью что бы когда выбивало два одинаковых значений перекручивало сначала если нету два одинаковых значения переходил к следующему сигменту кода http://www.cyberforum.ru/cpp-beginners/thread1232542.html
C++ Запись в ofstream - разобрать код
Доброго времени суток объясните как это работает? char msg; //что то записали в msg не важно как, суть в том что туда писали без символа \0, //и данных может быть меньше 255(больше 255 не может быть), // так же знаем сколько записали iMsgSize ofstream File; File.open("bla bla"); File<<msg; File.flush();
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: необъявленный идентификатор. Помогите разобраться. // // Программа для преобразования // Градусов Цельсия в градусы Фаренгейта: // Fahrenheit = NCelsius * (212 - 32)/100 + 32 // #include <cstdio> #include <cstdlib>
C++ Нужен алгоритм, который будет считать формулу, введённую пользователем в виде строки Задача такая: пользователь вводит с клавиатуры формулу, с заведомо неизвестным количеством переменных, а программа должна эту формулу посчитать. Я так понимаю, что строку нужно как-то отсортировать и исходя из тех переменных что будут в формуле создать динамические переменные, или динамический массив. Но только вот что-то совсем не приходит в голову как это всё реализовать) подробнее

Показать сообщение отдельно
Renji
1800 / 1218 / 285
Регистрация: 05.06.2014
Сообщений: 3,504

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

23.07.2014, 14:09. Просмотров 658. Ответов 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.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru