Вопросы с тегом «stl»

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

7
Почему мы не можем объявить std :: vector <AbstractClass>?
Потратив некоторое время на разработку на C #, я заметил, что если вы объявляете абстрактный класс с целью использования его в качестве интерфейса, вы не можете создать экземпляр вектора этого абстрактного класса для хранения экземпляров дочерних классов. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class IFunnyInterface { public: …

3
как обеспечить функцию подкачки для моего класса?
Как правильно включить мои swapалгоритмы в STL? 1) Участник swap. Имеет ли std::swapиспользовать SFINAE трюк использовать элемент swap. 2) Свободное положение swapв том же пространстве имен. 3) Частичная специализация std::swap. 4) Все вышеперечисленное. Спасибо. РЕДАКТИРОВАТЬ: Похоже, я не сформулировал свой вопрос четко. По сути, у меня есть шаблонный класс, и …
87 c++  algorithm  stl  swap 

4
Как я могу создать собственный компаратор для карты?
typedef map&lt;string, string&gt; myMap; При вставке новой пары в myMap, он будет использовать ключ stringдля сравнения своим собственным компаратором строк. Можно ли отменить этот компаратор? Например, я хотел бы сравнить ключ stringпо длине, а не по алфавиту. Или есть другой способ отсортировать карту?
87 c++  stl  stdmap 

10
Почему я предпочитаю использовать вектор для удаления
поскольку они оба являются непрерывными контейнерами памяти; Что касается функций, в deque есть почти все, что есть в векторе, но даже больше, поскольку его эффективнее вставлять спереди. Почему whould кто предпочитает , std::vectorчтобы std::deque?
86 c++  stl  vector  deque 

12
Копировать значения карты в вектор в STL
В данный момент прорабатываю эффективный STL. Правило 5 предполагает, что обычно предпочтительнее использовать функции-члены диапазона вместо их одноэлементных аналогов. В настоящее время я хочу скопировать все значения на карте (т.е. мне не нужны ключи) в вектор. Как лучше всего это сделать?
86 c++  stl  containers 

15
используйте std :: fill для заполнения вектора увеличивающимися числами
Я хотел бы заполнить vector&lt;int&gt;using std::fill, но вместо одного значения вектор должен содержать числа в порядке возрастания после. Я попытался добиться этого, повторяя третий параметр функции на единицу, но это дало бы мне только векторы, заполненные 1 или 2 (в зависимости от позиции ++оператора). Пример: vector&lt;int&gt; ivec; int i = …
85 c++  stl 

6
Зачем мне std :: get_ Contemporary_buffer?
С какой целью я должен использовать std::get_temporary_buffer? Стандарт гласит следующее: Получает указатель на хранилище, достаточное для хранения до n смежных T объектов. Я думал, что буфер будет размещен в стеке, но это не так. Согласно стандарту C ++ этот буфер на самом деле не временный. Какие преимущества у этой функции …

8
Невозможно включить заголовки C ++, такие как вектор, в Android NDK
Когда я пытаюсь включить какой-либо класс C ++, например вектор, в мой проект Android NDK (с использованием последней версии NDK r5b), я получаю сообщение об ошибке следующего вида ... Compile++ thumb : test-libstl &lt;= test-libstl.cpp /Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory Другие люди, которые сообщили об этой проблеме …

1
В чем смысл черт характера STL?
Я заметил, что в моей копии справочника SGI STL есть страница о характеристиках характера, но я не вижу, как они используются? Заменяют ли они функции string.h? Кажется, что они не используются std::string, например, length()метод on std::stringне использует length()метод черт характера . Почему существуют Черты характера и используются ли они на …

5
Как выбрать между картой и unordered_map?
Предположим, я хотел сопоставить данные со строкой в ​​качестве ключа. Какой контейнер выбрать, mapили unordered_map? unordered_mapзанимает больше памяти, поэтому предположим, что память не является проблемой, а проблема заключается в скорости. unordered_mapобычно должен давать среднюю сложность O (1) с наихудшим случаем O (n). В каких случаях он достигнет O (n)? Когда …

8
В std :: multiset есть функция или алгоритм для удаления только одного образца (однозначного или повторяющегося), если элемент найден
Возможно, это дубликат, но я ничего не нашел поиском: При erase(value)вызове std::multisetвсе элементы с найденным значением удаляются. Единственное решение, которое я мог придумать, это: std::multiset&lt;int&gt;::iterator hit(mySet.find(5)); if (hit!= mySet.end()) mySet.erase(hit); Это нормально, но я подумал, что может быть лучше. Есть идеи ?
83 c++  stl  multiset 

10
Является ли цикл for на основе диапазона устаревшим для многих простых алгоритмов?
Решение алгоритма: std::generate(numbers.begin(), numbers.end(), rand); Решение для цикла на основе диапазона: for (int&amp; x : numbers) x = rand(); Зачем мне использовать более подробные std::generateциклы for на основе диапазона в C ++ 11?
81 c++  algorithm  stl  c++11  foreach 

12
char * vs std :: string в c ++ [закрыто]
В настоящее время этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, потребует дебатов, аргументов, опросов или расширенного обсуждения. Если вы считаете, что этот вопрос можно улучшить и, возможно, снова открыть, обратитесь за помощью …
81 c++  stl  stdstring  arrays 

5
Как использовать приоритетную очередь STL для объектов?
class Person { public: int age; }; Я хочу хранить объекты класса Person в очереди с приоритетом. priority_queue&lt; Person, vector&lt;Person&gt;, ??? &gt; Я думаю, мне нужно определить класс для сравнения, но я не уверен в этом. Кроме того, когда мы пишем, priority_queue&lt; int, vector&lt;int&gt;, greater&lt;int&gt; &gt; Как работает большее?
80 c++  stl 

7
Исключение c ++: выброс std :: string
Я хотел бы вызвать исключение, когда мои методы C ++ обнаруживают что-то странное и не могут восстановиться. Можно ли бросать std::stringуказатель? Вот что я с нетерпением ждал: void Foo::Bar() { if(!QueryPerformanceTimer(&amp;m_baz)) { throw new std::string("it's the end of the world!"); } } void Foo::Caller() { try { this-&gt;Bar(); // should …
80 c++  exception  stl 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.