Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пересечение отображений 
:(
    Опции темы
cthutq
Дата 21.7.2007, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



есть класс
Код

enum INDEX
{
    A, B, C
}

class Item {
private :
    INDEX m_index;
    std::vector<unsigned short> m_vector;

public :
    INDEX index (void) const { reurn m_index; }
    const std::vector<unsigned short> vector (void) const { return m_vector; }
}


class Owner {
private :
    std::map <INDEX, Item> m_items;

public :
    const Item& operator [] (INDEX index);
}


теперь есть вектор владельцев
Код

std::vector<Owner> owners;


хотелось бы получить Owner, который является пересечением массива owners, которые получены за счет пересечения Owner[index]. 
PM MAIL   Вверх
JackYF
Дата 21.7.2007, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(cthutq @  21.7.2007,  21:36 Найти цитируемый пост)
который является пересечением массива owners, которые получены за счет пересечения Owner[index].  


по идее, тебе поможет std::set_intersection, которая применяется последовательно сначала к первым двум элементами вектора owners, затем еще раз пересечение с третьим элементом и так до конца. Кто останется в пересечении конечном - тот и выиграл smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
cthutq
Дата 21.7.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Цитата(JackYF @  21.7.2007,  23:32 Найти цитируемый пост)
по идее, тебе поможет std::set_intersection, которая применяется последовательно сначала к первым двум элементами вектора owners, затем еще раз пересечение с третьим элементом и так до конца. Кто останется в пересечении конечном - тот и выиграл

а как быть если ключи у  отображения не совпадают.

И почему std::set_intersection принимает итераторы 2-х контейнеров и итератор выходного. Тоесть 3 контейнера.
А можно ли обойтись двумя. Тоесть первый и есть результирующий
PM MAIL   Вверх
JackYF
Дата 22.7.2007, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(cthutq @  21.7.2007,  23:38 Найти цитируемый пост)
а как быть если ключи у  отображения не совпадают.

ээ... а зачем они тогда нужны?


Цитата(cthutq @  21.7.2007,  23:38 Найти цитируемый пост)
А можно ли обойтись двумя. Тоесть первый и есть результирующий 

а с чем ты пересекать будешь?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
cthutq
Дата 22.7.2007, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Цитата(JackYF @  22.7.2007,  00:04 Найти цитируемый пост)
ээ... а зачем они тогда нужны?

ну просто в одном Owner (A, B, C), а в другом Owner (B, C).
А нужны для доступа по INDEX. Если его нет, то возвращается пустой Item.

Цитата(JackYF @  22.7.2007,  00:04 Найти цитируемый пост)
а с чем ты пересекать будешь? 

не понял ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.