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

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

2
std :: back_inserter для std :: set?
Думаю, это простой вопрос. Мне нужно сделать что-то вроде этого: std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); Конечно, std::back_inserterне работает, раз нет push_back. std::inserterтоже нужен итератор? Я не использовал, std::inserterпоэтому не знаю, что делать. Есть у кого-нибудь идеи? Конечно, мой другой вариант - использовать вектор для s2, …
98 c++  algorithm  stl 

6
Современный способ фильтровать контейнер STL?
Возвращаясь к C ++ после многих лет работы с C #, мне было интересно, каким будет современный - читайте: C ++ 11 - способ фильтрации массива, то есть как мы можем достичь чего-то похожего на этот запрос Linq: var filteredElements = elements.Where(elm => elm.filterProperty == true); Чтобы отфильтровать вектор элементов …
98 c++  c++11  stl 


8
vector :: at vs. vector :: operator []
Я знаю, что at()это медленнее, чем []из-за проверки границ, которая также обсуждается в подобных вопросах, таких как C ++ Vector at / [] operator speed или :: std :: vector :: at () vs operator [] << удивительные результаты !! В 5-10 раз медленнее / быстрее! . Я просто не …
95 c++  stl  stdvector 

2
как добавить объект list <T> к другому
в C ++ у меня есть два list&lt;T&gt;объекта, Aи Bя хочу добавить все члены Bв конец A. Я искал несколько разных источников и не нашел простого решения (ei A.append(B);), и это меня немного удивляет. Как лучше всего это сделать? Так получилось, что после этого меня не волнует B (он удаляется …
94 c++  list  stl 


4
Как получить определенный элемент в списке, учитывая позицию?
Итак, у меня есть список: list&lt;Object&gt; myList; myList.push_back(Object myObject); Я не уверен, но уверен, что это будет «0-й» элемент в массиве. Могу ли я использовать какую-либо функцию, которая вернет myObject? Object copy = myList.find_element(0); ?
93 c++  list  stl 

7
Проверка содержимого стандартного контейнера (std :: map) с помощью gdb
Предположим, что есть что-то вроде этого: #include &lt;map&gt; int main(){ std::map&lt;int,int&gt; m; m[1] = 2; m[2] = 4; return 0; } Я хотел бы иметь возможность проверить содержимое карты, запускающей программу из gdb. Если я попробую использовать оператор индекса, я получу: (gdb) p m[1] Attempt to take address of value …
93 c++  stl  map  gdb 

8
std :: map insert или std :: map find?
Предполагая карту, на которой вы хотите сохранить существующие записи. В 20% случаев вводимая вами запись - это новые данные. Есть ли преимущество в выполнении std :: map :: find, а затем std :: map :: insert с использованием этого возвращенного итератора? Или быстрее попытаться вставить, а затем действовать в зависимости …
93 c++  optimization  stl  stdmap 

8
Какой контейнер STL мне следует использовать для FIFO?
Какой контейнер STL лучше всего подходит для моих нужд? По сути, у меня есть контейнер шириной 10 элементов, в котором я постоянно добавляю push_backновые элементы, pop_frontдобавляя самый старый (примерно миллион раз). В настоящее время я использую a std::dequeдля этой задачи, но мне было интересно, будет ли a std::listболее эффективным, поскольку …
93 c++  stl  fifo 

8
Альтернатива vector <bool>
Как (надеюсь) мы все знаем, vector&lt;bool&gt;он полностью сломан и не может рассматриваться как массив C. Как лучше всего получить эту функциональность? До сих пор я думал о следующих идеях: Используйте vector&lt;char&gt;вместо этого, или Используйте класс-оболочку и vector&lt;bool_wrapper&gt; Как вы, ребята, справляетесь с этой проблемой? Мне нужен c_array()функционал. В качестве побочного …
92 c++  stl  vector  boolean 

6
Начальная емкость вектора в C ++
Что из capacity()того, std::vectorчто создается с использованием конструктора по умолчанию? Я знаю, что size()это ноль. Можем ли мы заявить, что построенный по умолчанию вектор не вызывает выделения памяти в куче? Таким образом, можно было бы создать массив с произвольным резервом, используя одно выделение, например std::vector&lt;int&gt; iv; iv.reserve(2345);. Допустим, я почему-то …

6
Как обновить std :: map после использования метода find?
Как обновить значение ключа std::mapпосле использования findметода? У меня есть объявление карты и итератора, подобное этому: map &lt;char, int&gt; m1; map &lt;char, int&gt;::iterator m1_it; typedef pair &lt;char, int&gt; count_pair; Я использую карту для хранения количества вхождений символа. Я использую Visual C ++ 2010.
92 c++  map  stl  stdmap 

2
Почему std :: stack по умолчанию использует std :: deque?
Поскольку для использования контейнера в стеке требуются только следующие операции: назад () отталкивать() pop_back () Почему контейнер по умолчанию для него - двухсторонняя очередь, а не вектор? Разве перераспределение deque не дает буфер элементов перед front (), чтобы push_front () была эффективной операцией? Разве эти элементы не потрачены впустую, поскольку …
91 c++  stl  containers 


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