Здравствуйте, Hard_Club, Вы писали:
H_C>Кто-нибудь слышал о классе, в котором сочетается и map, и vector. Можно обращаться к єлементам как через индексы так и по ключу.
Сортированный вектор. Для обращения по ключу используется std::lower_bound.
Здравствуйте, Hard_Club, Вы писали:
H_C>Нет, мне нужно обращаться к элементу по двум ключам независимо, и получать по одному из ключей другой ключ.
И что?
По индексу находми элемент, из элемента ключ (если элемент не содержит ключа, то в векторе можно хранить пару ключ-значени)
По ключу с помощью std::lower_bound находим итератор, далее с помощью std::distance находим индекс
Если это опять не то, то сформулируй задачу попдробнее.
Здравствуйте, Hard_Club, Вы писали:
H_C>Кто-нибудь слышал о классе, в котором сочетается и map, и vector. Можно обращаться к єлементам как через индексы так и по ключу.
если не важна скорость то можеш использовать метод по типу такого.
template<class T>
typename T::iterator map_index( T &m, size_t i )
{
if( i >= m.size() || i < 0 )
{
return m.end();
}
typename T::iterator it = m.begin();
while( i != 0 )
{
--i;
++it;
}
return it;
}
А если нужна скорость, и не важен порядок включения в vector елементов то можеш заюзать вот такой вот солюшен.
Здравствуйте, Hard_Club, Вы писали:
H_C>Кто-нибудь слышал о классе, в котором сочетается и map, и vector. Можно обращаться к єлементам как через индексы так и по ключу.
Здравствуйте, Trotter, Вы писали:
T>Здравствуйте, Hard_Club, Вы писали:
H_C>>Кто-нибудь слышал о классе, в котором сочетается и map, и vector. Можно обращаться к єлементам как через индексы так и по ключу.
T>boost::multi_index ?
boost::bimap ?
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"