Russian Qt Forum

Qt => Вопросы новичков => Тема начата: GamBitiK от Октябрь 11, 2014, 14:48



Название: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 14:48
Столкнулся,как меня в принципе ребята и предупреждали с проблемой что Qmap выполняет сортировку,автоматически внутри, что в моем случае не допустимо,но работать с ним это то что мне нужно,может подскажите какую-нибудь альтернативу или как отменить эту автосортировку. думал что Qhash поможет,но и он какие то манипуляции проводит внутри


Название: Re: Qmap без сортировки
Отправлено: GreatSnake от Октябрь 11, 2014, 15:29
std::unordered_map


Название: Re: Qmap без сортировки
Отправлено: kambala от Октябрь 11, 2014, 15:36
думал что Qhash поможет,но и он какие то манипуляции проводит внутри
какие? хэш вычисляет? :)


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 15:50
std::unordered_map
поточнее если можно


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:04
думал что Qhash поможет,но и он какие то манипуляции проводит внутри
какие? хэш вычисляет? :)
ну да,а мне это не нужно


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:09
/home/main.cpp:331: error: 'unordered_map' is not a member of 'std'


std::unordered_map<std::string, std::string> m;


Название: Re: Qmap без сортировки
Отправлено: kambala от Октябрь 11, 2014, 16:12
std::unordered_map
поточнее если можно
доступен начиная с 11-го стандарта
думал что Qhash поможет,но и он какие то манипуляции проводит внутри
какие? хэш вычисляет? :)
ну да,а мне это не нужно
ну так это же для быстрого поиска по ключу необходимо


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:20
std::unordered_map
поточнее если можно
доступен начиная с 11-го стандарта
думал что Qhash поможет,но и он какие то манипуляции проводит внутри
какие? хэш вычисляет? :)
ну да,а мне это не нужно
ну так это же для быстрого поиска по ключу необходимо
ваще ничего теперь не понимаю....что мне нужно сделать что бы он не сортировал,пожалуйста скажите


Название: Re: Qmap без сортировки
Отправлено: Igors от Октябрь 11, 2014, 16:27
Что Вы хотите от QMap/QHash? Обычно их используют чтобы проверить есть ли такой ключ и взять значение по ключу. А Вам что нужно?


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:28
что бы он выступал в качестве двумерного массива без сортировок


Название: Re: Qmap без сортировки
Отправлено: m_ax от Октябрь 11, 2014, 16:44
что бы он выступал в качестве двумерного массива без сортировок
Это вы имеете в виду свой "резиновый" двумерный массив? Тогда мапы/хешы - плохая идея..   


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:45
да я знаю но каким средствами создать не знаю


Название: Re: Qmap без сортировки
Отправлено: kambala от Октябрь 11, 2014, 16:47
что бы он выступал в качестве двумерного массива без сортировок
Это вы имеете в виду свой "резиновый" двумерный массив? Тогда мапы/хешы - плохая идея..  
макс, ты же сам порекомендовал мэп в другой теме :D
да я знаю но каким средствами создать не знаю

разобраться с вектором векторов или с обычным массивом int a[][] (двойным указателем)


Название: Re: Qmap без сортировки
Отправлено: m_ax от Октябрь 11, 2014, 16:47
да я знаю но каким средствами создать не знаю

А какова постановка задачи, что привела к необходимости именно такого "резинового" поведения от 2d массива?


Название: Re: Qmap без сортировки
Отправлено: m_ax от Октябрь 11, 2014, 16:48
Цитировать
макс, ты же сам порекомендовал мэп в другой теме  :D
Так я же там не зря добавил, что это наивный способ)


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:49
собираю значения из Бд в порядке даты, а массив записываю только номера


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 16:50
я в начале о этом упомянул


Название: Re: Qmap без сортировки
Отправлено: m_ax от Октябрь 11, 2014, 17:19
ну можно по-простому так:
Код
C++ (Qt)
template <class T>
class rubber_array
{
public:
   rubber_array() {}
 
   const T& operator[](size_t i) const { return _v[i]; }
 
   T& operator[](size_t i)
   {
       if (i < _v.size())
           return _v[i];
 
       _v.resize(i + 1);
       return _v[i];
   }
 
   size_t size() const { return _v.size(); }
 
private:
   std::vector<T> _v;
};
 
template <class T>
using rubber_matrix2d = rubber_array<rubber_array<T>>;
 
//...
 
rubber_matrix2d<int> mtx;
mtx[0][0] = 0;
mtx[0][1] = 1;
mtx[1][0] = 2;
// и т.д.
 

Но это плохое решение.. И лучше не привыкать так делать..


Название: Re: Qmap без сортировки
Отправлено: Igors от Октябрь 11, 2014, 18:44
я в начале о этом упомянул
А почему это начинающий постит одну строку, а уважаемый человек отвечает фрагментом кода? Вам здесь что, "сервис-центр" что ли? Тщательнее/капитальнее обдумывайте свои квешнзы, не злоупотребляйте доверием отвечающих.

Про резиновый массив давно ответили: "вектор векторов" (а еще лучше QList векторов). Что не устраивает? Реализовать пробовали?  Или так, бегаете (как вшивый по бане) от вектора к мапе и обратно?  :)


Название: Re: Qmap без сортировки
Отправлено: kambala от Октябрь 11, 2014, 18:51
собираю значения из Бд в порядке даты, а массив записываю только номера
я в начале о этом упомянул
Столкнулся,как меня в принципе ребята и предупреждали с проблемой что Qmap выполняет сортировку,автоматически внутри, что в моем случае не допустимо,но работать с ним это то что мне нужно,может подскажите какую-нибудь альтернативу или как отменить эту автосортировку. думал что Qhash поможет,но и он какие то манипуляции проводит внутри
кажется я слепой


Название: Re: Qmap без сортировки
Отправлено: GamBitiK от Октябрь 11, 2014, 20:32
собираю значения из Бд в порядке даты, а массив записываю только номера
я в начале о этом упомянул
Столкнулся,как меня в принципе ребята и предупреждали с проблемой что Qmap выполняет сортировку,автоматически внутри, что в моем случае не допустимо,но работать с ним это то что мне нужно,может подскажите какую-нибудь альтернативу или как отменить эту автосортировку. думал что Qhash поможет,но и он какие то манипуляции проводит внутри
кажется я слепой
нее...я не о том,а о том что меня предупреждали