Стандартная библиотека шаблонов или STL - это библиотека универсальных контейнеров, итераторов, алгоритмов и функциональных объектов C++. Когда C++ был стандартизирован, большие части STL были включены в Стандартную библиотеку, и эти части в Стандартной библиотеке также иногда ошибочно называются вместе "STL".
1 ответ

Усиление черт, чтобы проверить, является ли объект контейнером STL

Я выполняю рефакторинг библиотеки сериализации в моем проекте, чтобы она компилировалась с -std=c++11 и хотите определить, является ли объект контейнером STL, например is_stl_deque<T>::value is_stl_list<T>::value is_stl_vector<T>::…
21 авг '14 в 07:05
2 ответа

C++ STL - вручную, используя стандартные GDB красивые принтеры

Как я могу использовать StdVectorPrinter из https://github.com/gcc-mirror/gcc/blob/gcc-6_3_0-release/libstdc%2B%2B-v3/python/libstdcxx/v6/printers.py чтобы создать свой собственный вывод стиль?Т.е. использовать существующие инструменты для доступа к…
17 авг '18 в 20:15
3 ответа

Использование внутренней реализации красно-черного дерева в STL

Я понимаю, что мой STL (который поставляется с g++ 4.xx) использует красно-черные деревья для реализации контейнеров, таких как карта. Можно ли использовать внутреннее красно-черное дерево STL напрямую. Если так, то как? Если нет, то почему нет - по…
08 июл '12 в 06:28
1 ответ

Visual C++ 2010 отображать / устанавливать итераторы несовместимы

Я вырываю свои волосы с этой ошибкой. Это функция поиска адресов в таблице символов для отладчика в эмуляторе 8080. Идея такова: у меня есть таблица символов с адресами и метками, и функция this берет адрес и пытается найти ближайший символ на задан…
05 май '14 в 21:00
1 ответ

Как использовать контейнер STL для хранения шаблонов на основе shared_ptr?

Я хочу создать контейнер для хранения shared_ptrs, которые основаны на шаблонах. Например, у меня есть: template <class T> class Data { .... }; template <class T> struct DataPtr { typedef boost::shared_ptr<Data<T> > type; }; …
06 фев '14 в 02:23
2 ответа

C++ std::map, как получить доступ к ключам по местоположению индекса

Я хотел бы использовать C++ std::map чтобы получить доступ к значению, связанному с данным ключом в log (n) времени. Так как ключи std::map отсортированы, технически я могу получить доступ к ключам по расположению в отсортированном порядке. Я знаю, …
21 мар '18 в 22:42
5 ответов

Как создать итератор для элементов, соответствующих производному типу в C++?

Я хотел бы итератор в C++, который может перебирать только элементы определенного типа. В следующем примере я хочу выполнять итерации только для элементов, которые являются экземплярами SubType. vector<Type*> the_vector; the_vector.push_back(n…
21 апр '09 в 19:46
3 ответа

Как stable_partition является адаптивным алгоритмом?

stable_partition - это шаблон функции, присутствующий в заголовочном файле алгоритма C++ STL. Я читал, что это адаптивный алгоритм, и его временная сложность составляет O(n*logn) или O(n) в зависимости от некоторых факторов. Может кто-нибудь объясни…
04 фев '14 в 14:03
4 ответа

Можно ли получить один элемент набора в C++ STL?

У меня есть следующий код C++ с вектором C++ STL, #include <iostream> #include <vector> using namespace std; int main () { vector <int> v; for (int i=0; i<15; i++) v.push_back (i); cout << v[10] << endl; return 0; } …
31 май '17 в 15:22
1 ответ

Найдите путь к заголовкам STL, используемым в g++

Мне нужно найти что-то в отладочной версии std::vector<T>и я не могу вспомнить, где на самом деле находятся заголовки. Это под MSYS на Windows, где это сложно, потому что у вас есть /include, /mingw/include, /mingw/mingw32/include, /usr/includ…
14 янв '14 в 10:05
1 ответ

Двойная> строка> двойное преобразование

Для передачи данных по сети я конвертирую значение double в строку, отправляю его и на стороне получателя преобразую обратно в значение double. Все идет нормально. Но я наткнулся на какое-то странное поведение, которое я не могу объяснить Весь приме…
12 окт '11 в 15:53
4 ответа

C++ char массив вне области видимости или нет?

У меня есть метод, который требует указателя const char в качестве входных данных (не завершается нулем). Это требование библиотеки (TinyXML), которую я использую в своем проекте. Я получаю входные данные для этого метода из вызова метода string.c_s…
12 май '09 в 00:15
4 ответа

Использование памяти учетной записи с помощью специального распределителя

Я использую пользовательский распределитель для учета использования памяти в нескольких контейнерах. В настоящее время я использую статическую переменную для учета использования памяти. Как можно разделить эту учетную запись на несколько контейнеров…
27 окт '09 в 09:22
1 ответ

C++ Как добавить очередь unique_ptr в вектор

Упрощенный код: #include <queue> #include <memory> #include <vector> class Foo { public: Foo() {}; virtual ~Foo() {} }; int main() { std::queue<std::unique_ptr<Foo>> queue; auto element = std::make_unique<Foo>(); …
05 июн '18 в 01:10
3 ответа

Разница в производительности между map и unordered_map в C++

У меня есть простое требование, мне нужна карта типа. Однако мне нужно самое быстрое теоретически возможное время поиска. Я использовал и карту, и новый предложенный unordered_map из tr1. Я обнаружил, что, по крайней мере, при разборе файла и создан…
28 фев '10 в 06:02
2 ответа

Итератор begin() должен содержать 3, вывод говорит 2?

Почему итератор, указывающий на начало списка, выводит второе значение? Почему a.begin()++ покидает begin () впереди и есть ли лучшая реализация? #include <iostream> #include <list> using namespace std; //3,2,1 int main() { list<int&g…
03 дек '15 в 18:24
2 ответа

C++ STL copy_backward вопрос

int main () { vector<int> myvector; vector<int>::iterator it; // set some values: for (int i=1; i<=5; i++) myvector.push_back(i*10); // myvector: 10 20 30 40 50 myvector.resize(myvector.size()+3); // allocate space for 3 more elements…
02 авг '11 в 21:57
2 ответа

Использует ли побитовая операция (&, ^. | И т. Д.), Предоставляемая в качестве перегрузки операторов в std::bitset, инструкции AVX или SSE4?

Поскольку это зависит от реализации, единственный ли способ выяснить это - разборка?
05 окт '16 в 22:19
0 ответов

Ошибка при удалении элемента в мультисете с ++

Я класс с переменной члена, которая multiset < pair<TrainType, map<string, set<tm>>>> m_oTrainGraphic; TrainType - это enum. Я вставляю некоторые элементы в m_oTrainGraphic Контейнер. У меня есть метод, который принимает пара…
02 май '18 в 16:08
2 ответа

Boost или stl api для хеширования массива строк в виде строки => индекс-массива

Я ищу повышение или STL API, который имитирует этот: https://mxr.mozilla.org/mozilla-central/source/xpcom/ds/nsStaticNameTable.h Короче говоря, чтобы улучшить производительность поиска, он создает карту (хеш) из массива строк (char*), в котором ключ…
19 фев '14 в 07:01