Результаты поиска по запросу "stl"

4 ответа

Код, который я использовал, основан на @ antonakos's:

сно сэта страница [http://www.cplusplus.com/reference/stl/set/insert/], Я могу добиться постоянной вставки времени, если я использую iterator std::set::insert ( iterator position, const value_type& x );иposition Предоставляемый итератор напрямую ...

5 ответов

 на несортированных данных, и на самом деле гораздо хуже на отсортированных данных.

таю, что стандарт C ++ дляstd::sort [http://en.cppreference.com/w/cpp/algorithm/sort]не гарантирует производительность O (n) в списке, который уже отсортирован. Но все же мне интересно, насколько вам известно, какие реализации STL (GCC, MSVC и т. ...

4 ответа

Контейнер карты на самом деле будет хранить все элементы в порядке, указанном в этом порядке, и именно так вы можете достичь O (log n) времени поиска и вставки по значению ключа.

у отобразить объекты одного класса на объекты другого. Класс, который я хочу использовать в качестве ключа, однако, не был написан мной и является простымstruct с несколькими значениями. std :: map упорядочивает его содержимое, и мне было ...

ТОП публикаций

5 ответов

Я думаю, что совет Страуструпа действительно предназначен только для начинающих, а не для того, чтобы запутывать их еще больше (то есть для людей типа «начало семестров»). Я думаю, что в любом производственном коде (и в последующих лекциях) нужно учить использовать std :: size_t.

учаю следующее предупреждение всегда для следующего типа кода. std::vector v; for ( int i = 0; i < v.size(); i++) { }warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data Я это понимаюsize() ...

3 ответа

http://www.sgi.com/tech/stl/RandomNumberGenerator.html

тся ли std :: random_shuffle потокобезопасным? Я полагаю, нет, так как обычный rand () не является потокобезопасным. Если это так, как бы я использовал rand_r с random_shuffle, чтобы дать каждому потоку уникальное начальное число. Я видел примеры ...

2 ответа

это действительно не решает никаких проблем. Для возможности вызова ftell / fseek требуется поддержка 64-битного смещения; для этого используйте stdio_sync_filebuf, но это зависит от определения _GLIBCXX_USE_LFS

аюсь найти точный ответ и не могу, поэтому я надеюсь, что кто-то может знать. Я занимаюсь разработкой приложения на C ++ с использованием GCC 4.x в Linux (32-битная ОС). Это приложение должно уметь читать файлы размером> 2 ГБ. Я действительно ...

4 ответа

Если вы хотите использовать элементы контейнера для изменения элементов каким-либо системным образом или использовать их в задаче, которая каким-либо образом изменит их, используйте std :: transform. "

ько что прочитал в стандарте C ++, чтоstd::for_each это немодифицирующая последовательность операций, наряду сfind, search и так далее. Означает ли это, что функция, применяемая к каждому элементу, не должна их изменять? Почему это? Что возможно ...

2 ответа

 (который, в конце концов, упорядочен), проблема в том, что это займет больше, чем постоянная сложность

вык писать такие циклы: for (std::size_t index = 0; index < foo.size(); index++) { // Do stuff with foo[index]. }Но когда я вижу циклы итераторов в чужом коде, они выглядят так: for (Foo::Iterator iterator = foo.begin(); iterator != foo.end(); ...

5 ответов

правда, но опять же вы сталкиваетесь с такими проблемами, когда имеете дело с плавающей точкой. Но в моем случае я могу указать разумный эпсилон. К счастью, я не хочу реализовывать контейнер с произвольным интервалом точности :-) Как вы заметили, тогда все станет сложнее.

ющий код должен найти ключ3.0вstd::map который существует. Но из-за точности с плавающей запятой это не будет найдено. map<double, double> mymap; mymap[3.0] = 1.0; double t = 0.0; for(int i = 0; i < 31; i++) { t += 0.1; bool contains = ...

8 ответов

Вы будете иметь свое собственное мнение о мудрости принятия бросков в / из

надеюсь) мы все знаем,vector<bool> полностью сломан и не может рассматриваться как массив c. Каков наилучший способ получить эту функциональность? До сих пор я думал о следующих идеях: Использоватьvector<char> вместо илиИспользуйте ...