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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите подобрать контейнер, для вставки в отсортированный 
V
    Опции темы
boostcoder
Дата 15.2.2012, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(borisbn @  15.2.2012,  09:37 Найти цитируемый пост)
разве что буст

с бусте есть же: http://www.boost.org/doc/libs/1_48_0/doc/html/unordered.html

Цитата(borisbn @  15.2.2012,  09:37 Найти цитируемый пост)
а что это за конструкция

это новый синтаксис. тут объясняется основное преимущество: http://en.wikipedia.org/wiki/C%2B%2B11#Alt...function_syntax
но он универсальный. можно использовать во всех случаях.

Это сообщение отредактировал(а) boostcoder - 15.2.2012, 09:54
PM WWW   Вверх
mes
Дата 15.2.2012, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(borisbn @  15.2.2012,  08:37 Найти цитируемый пост)
это чем-то отличается от

по сути нет, но есть случаи,  когда первая запись невозможна, например при выведение типа из аргументов функции, потому как аргументы в этом случае еще на тот момент не известны..

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



--------------------
PM MAIL WWW   Вверх
borisbn
Дата 15.2.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



ясно. в вики хороший пример
Код
template<class Lhs, class Rhs>
  auto adding_func(const Lhs &lhs, const Rhs &rhs) -> decltype(lhs+rhs) {return lhs + rhs;}



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
serghd
Дата 15.2.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да и тут неплохо http://en.wikipedia.org/wiki/Decltype

PM MAIL   Вверх
serghd
Дата 15.2.2012, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @ 15.2.2012,  09:27)
не. не получилось вектор ускорить...
зато unordered_multiset работает в двое быстрее multiset`а smile 
Код

#include <iostream>
#include <set>
#include <unordered_set>
#include <algorithm>
#include <chrono>

const int N = 1000000; // million

template< class container_t >
auto countTime( const std::vector< typename container_t::value_type > & src,
   container_t & container ) -> std::chrono::microseconds
{
   auto start = std::chrono::system_clock::now();
   for ( auto idx = 0u, size = src.size(); idx < size; ++idx ) {
      container.insert( src[idx] );
   }
   return std::chrono::duration_cast<std::chrono::microseconds>(
      std::chrono::system_clock::now()-start
   );
}

template< class T >
auto countTime( const std::vector< T > & src, std::multiset< T > & container )
   -> std::chrono::microseconds
{
   auto start = std::chrono::system_clock::now();
   for ( auto idx = 0u, size = src.size(); idx < size; ++idx ) {
      container.insert( src[idx] );
   }
   return std::chrono::duration_cast<std::chrono::microseconds>(
      std::chrono::system_clock::now()-start
   );
}

int main() {
   std::multiset< int > multiset;
   std::unordered_multiset< int > unordered;

   std::vector< int > src;
   for ( int i = 0; i < N; i++ ) {
      src.push_back( rand() % N );
   }

   std::cout << "multiset  = " << countTime( src, multiset ).count() << " ms" << std::endl;
   std::cout << "unordered = " << countTime( src, unordered ).count() << " ms" << std::endl;
}


http://liveworkspace.org/code/a2a90a2c7c1b...f62eb92bde8a4bd

заодно и посмотреть как использовать chrono smile

boostcoder, такой вариант, наверное, "чуть" попроще для понимания будет, как Вы считаете?

Это сообщение отредактировал(а) serghd - 15.2.2012, 20:43
PM MAIL   Вверх
boostcoder
Дата 15.2.2012, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



лень было порядок наводить)
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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