Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как организовать STL set<MyStruct> , где MyStruct{CString, int, int}

43K
05 мая 2011 года
maximsoft
13 / / 25.04.2009
Существует ли возможность организовать set<MyStruct> , где
 
Код:
MyStruct
{CString word,
  int spam,
  int ham}


как организовать индексацию, чтобы сортировать по word? не могу разобраться с парами...
нужен динамический контейнер для отдельных слов с весом спамности.
с возможностью быстрого поиска и сортировки.


может быть предложите альтернативу т.к. на данный момент пытаюсь организовать все в list<>

Цитата:
PS практического опыта в программировании очень мало.
действие разворачивается в visual c++2010 или 6

63K
05 мая 2011 года
Iron_Phoenix
5 / / 23.08.2010
Если я Вас правильно понял, то могу предложить использовать map<string, MyStruct>, при этом в качестве строки, являющейся ключом, можете использовать word, а ваша структура будет к нему в довесок. Минусом решения является дублирование данных, будет хранится копия строки в качестве ключа контейнера.
11
05 мая 2011 года
oxotnik333
2.9K / / 03.08.2007
 
Код:
MyStruct::operator <(const & MyStruct)
надо перегрузить для структуры
43K
05 мая 2011 года
maximsoft
13 / / 25.04.2009
Цитата:
могу предложить использовать map<string, MyStruct>


Пошел по пути наименьшего сопротивления. С имеющимся багажом знаний пришел к такому...

 
Код:
typedef map<string, pair<int,int>>> CMyMap;
CMyMap m_conteiner;


сейчас буду пробовать реализовать.

перегрузка тоже хорошо, но нет времени вспоминать что и как
43K
06 мая 2011 года
maximsoft
13 / / 25.04.2009
что-то я не могу понять в visual c++ 6

так работает
 
Код:
typedef map<string, pair<int,int>>> MyMap;  //  знак > лишний

а так не работает - выдает ошибку (не обнаружен знак ","перед ...)
 
Код:
typedef map<string, pair<int,int>> CMyMap;


это глюк компилятора или я что-то не знаю?

и еще не нашел. как работать с такой парой в паре?
как к ней обращаться и читать-записывать данные?
277
06 мая 2011 года
arrjj
1.7K / / 26.01.2011
пробел между >> поставь, должно нормально работать.
43K
06 мая 2011 года
maximsoft
13 / / 25.04.2009
Цитата: arrjj
пробел между >> поставь, должно нормально работать.


Спасибо, помогло

43K
06 мая 2011 года
maximsoft
13 / / 25.04.2009
 
Код:
typedef map < string, pair<int,int> > CMyMap;
CMyMap m_conteiner;
CMyMap::iterator p_pos;


подскажите как использовать в таком случае (инициализировать и обратиться)
 
Код:
m_conteiner.insert(  //что дальше? как обратиться к паре? чтоб записать или считать
//что-то вроде этого ....
m_conteiner.insert(pair<string, pair<int,int> > ("qqqq",(12,23)));

или
 
Код:
m_conteiner["qqqq"] = ....(
277
06 мая 2011 года
arrjj
1.7K / / 26.01.2011
Вот примерчик:
Код:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string>
#include <map>
#include <utility>
using namespace std;
typedef pair <int,int> mypair;
typedef pair < string, mypair > megapair;
typedef map  < string ,mypair > mymap;
#define focus(a,b,c) megapair(a,mypair(b,c))

int main(){
mymap a;
a.insert(focus("hello",1,2));
a.insert(focus("bye",3,4));
cout<<a.find("hello")->second.second<<endl;
cout<<a.find("bye")->second.first<<endl;
return 0;
}

А вот пара сцылок: тыц тыц
43K
07 мая 2011 года
maximsoft
13 / / 25.04.2009
Да, да. Спасибо.
почти к этому пришел, только макроопределения для меня в новинку, буду читать...
32K
07 мая 2011 года
Rififi
54 / / 04.06.2008
Цитата: maximsoft
 
Код:
typedef map < string, pair<int,int> > CMyMap;
CMyMap m_conteiner;
CMyMap::iterator p_pos;


подскажите как использовать в таком случае (инициализировать и обратиться)



m_container.insert(CMyMap::value_type("zzz", std::make_pair(10, 20)));

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог