Все вопросы: [stl]

806 вопросов

3
голосов
4ответов
611 просмотров

Как найти значение на карте, используя только подшивки

При поиске во втором значении карты я использую что-то вроде следующего: typedef std::map<int, int> CMyList; static CMyList myList; template<class t> struct second_equal { typename typedef t::mapped_type mapped_type; typename typedef t::value_type value_type; second_...

7
голосов
4ответов
3374 просмотров

Где взять образец кода на C ++, создающий итератор для моего собственного контейнера?

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

10
голосов
4ответов
8804 просмотров

Почему мой пользовательский итератор не работает с копией STL?

Я написал OutputIterator для ответа на другой вопрос а>.Вот он: #include <queue> using namespace std; template< typename T, typename U > class queue_inserter { queue<T, U> &qu; public: queue_inserter(queue<T,U> &q) : qu(q) { } queue_inserter...

16
голосов
9ответов
12715 просмотров

Вставить в очередь STL с помощью std :: copy

Я хотел бы использовать std::copy для вставки элементов в очередь следующим образом: vector<int> v; v.push_back( 1 ); v.push_back( 2 ); queue<int> q; copy( v.begin(), v.end(), insert_iterator< queue<int> >( q, q.front() ) ); Но это не компилируется, жалуется, что...

0
голосов
1ответов
620 просмотров

Какие распределители доступны в STLPORT и как их использовать

Мы используем STLPORT и хотели бы изменить распределитель по умолчанию для stlport: вместо vector мы хотели бы попробовать vector Какие альтернативные распределители доступны в stlport и каковы их возможности? Как их использовать?

18
голосов
6ответов
26816 просмотров

C ++ STL: пользовательская сортировка одного вектора на основе содержимого другого

Это, вероятно, лучше всего указать в качестве примера.У меня есть два вектора / списка: People = {Anne, Bob, Charlie, Douglas} Ages = {23, 28, 25, 21} Я хочу отсортировать людей по возрасту, используя что-то вроде sort(People.begin(), People.end(), CustomComparator), но я не знаю, как н...

4
голосов
5ответов
4005 просмотров

Проблемы и сомнения в C ++ STL unordered_map

После нескольких лет работы на Java и C # я вернулся к C ++.Конечно, на мой стиль программирования повлияли эти языки, и я склонен ощущать потребность в особом компоненте, который я массово использовал: HASH MAP.В STL есть hash_map, который GCC утверждает, что он устарел, и я должен использовать...

49
голосов
10ответов
31729 просмотров

Каков правильный подход при использовании контейнера STL для вычисления медианы?

Допустим, мне нужно получить медиану из последовательности 1000000 случайных числовых значений. Если я использую что-нибудь кроме std::list, у меня нет (встроенного) способа сортировки последовательности для вычисления медианы. При использовании std::list я не могу произвольно получить до...

3
голосов
4ответов
1971 просмотров

Какой алгоритм сортировки используется Microsoft STL :: list :: sort ()?

Примечание. Я случайно опубликовал этот вопрос без указания того, какую реализацию STL я использовал, и я чувствовал, что она не может быть обновлена, так как она сделает большинство ее ответов устаревшими. Итак, правильный вопрос - какой алгоритм сортировки используется в приведенном ниж...

38
голосов
3ответов
23242 просмотров

Какой алгоритм сортировки используется STL list :: sort ()?

У меня есть список случайных целых чисел.Мне интересно, какой алгоритм использует метод list::sort().Например.в следующем коде: list<int> mylist; // ..insert a million values mylist.sort(); РЕДАКТИРОВАТЬ: см. также этот более конкретный вопрос а>.

4
голосов
4ответов
6331 просмотров

Как stl vector предоставляет произвольный доступ

Вчера вечером я использовал std :: vector в своей работе, и у меня возник вопрос: как вектор дает произвольный доступ? Я попытался изучить код, но безуспешно.Кто-нибудь может подсказать? Спасибо, Арун

30
голосов
13ответов
2374 просмотров

Когда вам следует использовать STL, отличный от того, который поставляется с вашим компилятором?

Мне было интересно узнать о реализациях STL за пределами того, что поставляется с gcc или Visual Studio, поэтому быстрый поиск в Google дал несколько результатов, например: Apache stdcxx uSTL rdeSTL При каких обстоятельствах следует использовать альтернативную стандартную библи...

17
голосов
7ответов
9508 просмотров

проверить тип элемента в контейнере stl - c ++

как я могу получить тип элементов, содержащихся в контейнере STL?

341
голосов
10ответов
316925 просмотров

Как проверить, что элемент находится в std :: set?

Как проверить, находится ли элемент в наборе? Есть ли более простой эквивалент следующего кода: myset.find(x) != myset.end()

2
голосов
5ответов
2961 просмотров

Функция создания хэша / ключа для широты и долготы?

У меня есть блоки данных, связанные со значениями широты и долготы.Я хотел бы создать ключ поиска / хеш-значение из значения широты / долготы, чтобы его можно было использовать в качестве поиска на карте или что-то подобное. Я использую отрицательные значения для запада и юга ... поэтому 5W, 1...

8
голосов
7ответов
14575 просмотров

Самый быстрый способ записать большой вектор STL в файл с помощью STL

У меня есть большой вектор символов (10 ^ 9 элементов), и мне было интересно, как быстрее всего записать такой вектор в файл.До сих пор я использовал следующий код: vector<char> vs; // ... Fill vector with data ofstream outfile("nanocube.txt", ios::out | ios::binary); ostream_iterator&l...

12
голосов
3ответов
8445 просмотров

Как контейнеры STL копируют объекты?

Я знаю, что контейнеры STL, такие как vector, копируют объект при его добавлении.push_back выглядит так: void push_back ( const T& x ); Я удивлен, увидев, что этот элемент используется как ссылка .Я написал пример программы, чтобы посмотреть, как она работает. struct Foo { Foo...

10
голосов
5ответов
27363 просмотров

На какие вопросы следует ожидать ответа от эксперта по STL в интервью

Недавно я просматривал объявление о вакансии, и одно из требований заключалось в том, чтобы человек обладал 9/10 в своем знании STL. Когда я оцениваю свои навыки, для меня 10 - это тот, кто пишет продвинутые книги по этой теме, например, Джон Скит (C #), Джон Ресиг (JavaScript) или Мартин Оде...

1
голосов
3ответов
2302 просмотров

Почему type_info объявлен вне пространства имен std?

Я использую VS2005 и реализацию STL в MS.Однако класс type_info in объявлен вне «пространства имен std».Это создает некоторые проблемы для сторонних библиотек, за исключением поиска std :: type_info.Почему это так и есть ли обходной путь?Вот пример из начала typeinfo: class type_info { ... };...

31
голосов
4ответов
12219 просмотров

stl vector и c ++: как изменить размер без конструктора по умолчанию?

Как сообщить STL, особенно для метода resize() в векторе, инициализировать объекты конструктором, отличным от конструктора по умолчанию, и с какими параметрами? Например: class something { int a; something (int value); } std::vector<something> many_things; many_things.resiz...

0
голосов
2ответов
1250 просмотров

Сортировка STL с абстрактными классами

У меня проблема с сортировкой моих производных классов с помощью функции сортировки STL. Пример - Заголовок: vector<AbstractBaseClass *> *myVector; В ImpL: sort(myVector->begin(), myVector->end(), compareBy); Компаратор: bool MyClass::compareBy(AbstractBaseCl...

2
голосов
5ответов
599 просмотров

c ++: что именно делает & rand?

Это отрывок кода на C ++, который мне придется подробно объяснить через несколько дней: std::vector<int> vct(8, 5); std::generate(vct.begin(), vct.end(), &rand); std::copy(vct.rbegin(), vct.rend(), std::ostream_iterator<int>(std::cout, "\n")); Думаю, я понимаю в нем ...

3
голосов
2ответов
458 просмотров

Массив с ++ с семантикой значений и без махинаций с распределителем?

Я ищу контейнер C ++, который представляет собой нечто среднее между boost :: array, boost :: scoped_array и std :: vector. Мне нужен массив, который динамически выделяется через new [] (без специальных распределителей), содержащийся в типе, имеющем значимый конструктор копирования. boost ...

2
голосов
3ответов
2052 просмотров

C ++ STL for_each должен принимать указатель на функцию-член, принимающую один аргумент

Мне нужно передать адрес члена fn, принимающего один аргумент в std :: for_each.как мне это сделать? class A{ void load() { vector<int> vt(10,20); std::for_each(vt.begin(), vt.end(), &A::print); //It didnt work when i tried mem_fun1(&A::print) } void print(int a) { cout<&l...

3
голосов
3ответов
1768 просмотров

Идиома удаления-удаления: что произойдет, если удалить итератор, возвращающий конец-конец?

Я получил этот вопрос, когда читал erase-remove idiom (элемент 32) от Скотта Мейерса "Эффективный STL" vector<int> v; ... v.erase(remove(v.begin(), v.end(), 99), v.end()); remove в основном возвращает "новый логический конец" и элементы исходного диапазона, которые начинаются с "...

0
голосов
1ответов
616 просмотров

Сбой инициализации std :: map на устройстве iPhone, но не в симуляторе

Я попытался включить флаг Call C++ Default Ctors/Dtors in Objective-C, но при первой попытке доступа к карте все еще получаю ошибку EXC_BAD_ACCESS: (*[TextureBatcher getSharedTextureBatcher].getMap)[texID].vertexCount=0; (*[TextureBatcher getSharedTextureBatcher].getMap)[texID].indexCount=0; ...

2
голосов
1ответов
337 просмотров

Сбой в msvcp90d.dll при получении итератора из boost :: tokenizer

Когда я извлекаю итератор begin () для boost :: tokenizer, я получаю сбой в msvcp90d.dll с надписью «ITERATOR LIST CORRUPTED», что подозрительно похоже на проблемы, с которыми я сталкивался раньше с флагом компилятора _HAS_ITERATOR_DEBUGGING, однако я убедился, что моя программа компилируется с ...

1
голосов
3ответов
3839 просмотров

сортировать с помощью boost :: bind

bool pred(int k, int l, int num1, int num2) { return (num1 < num2); } int main() { vector <int> nums; for (int i=50; i > 0; --i) { nums.push_back(i); } std::sort (nums.begin(), nums.end(), boost::bind(&pred, 5, 45)); } Я очень новичок. Я учился использ...

4
голосов
3ответов
2791 просмотров

пересечь две карты, используя только ключи в качестве компаратора

У меня есть две карты, и я хотел бы получить карту, которая является пересечением двух, используя только ключ в качестве компаратора, и в то же время выполнить простую математическую операцию со значениями общих элементов, таких как +/- например: map<int, double> m1,m2; m1[1] = 1.1; ...

1
голосов
4ответов
7521 просмотров

Добавление элементов в карту STL в список инициализации конструкторов?

Мне было интересно, возможно ли это, и если да, то как я это сделаю.Если это невозможно, мне просто нужно будет добавить элементы в теле конструктора. В идеале я бы хотел, чтобы карта оставалась неизменной после построения. Я пытаюсь добавить на карту две пары, созданные из параметров конс...