Запитання з тегом «stl»

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

8
Чи std :: вектор копіює об'єкти push_back?
Після багатьох досліджень з valgrind, я зробив висновок, що std :: vector робить копію об'єкта, який ви хочете push_back. Це справді правда? Вектор не може зберігати посилання чи покажчик об’єкта без копії ?! Дякую
169 c++  stl  stdvector 


11
Як ефективно очистити чергу :: std ::?
Я використовую std :: чергу для реалізації класу JobQueue. (В основному цей клас обробляє кожне завдання FIFO). В одному сценарії я хочу очистити чергу за один кадр (видалити всі завдання з черги). Я не бачу ясного методу, доступного в класі std :: queue. Як я ефективно реалізую чіткий метод для …
166 c++  stl  queue 

10
Чи слід зберігати цілі об'єкти чи покажчики на об’єкти в контейнерах?
Проектування нової системи з нуля. Я буду використовувати STL для зберігання списків і карт певних довгоживучих об'єктів. Запитання: Чи повинен я забезпечити, щоб мої об'єкти мали конструктори копій і зберігали копії об'єктів в моїх контейнерах STL, або як правило, краще керувати життям і сферою застосування і просто зберігати вказівники на …
162 c++  stl  pointers 

3
Як отримати std :: векторний покажчик на необроблені дані?
Я намагаюся використовувати std::vectorяк charмасив. Моя функція приймає недійсний покажчик: void process_data(const void *data); Перш ніж я просто використав цей код: char something[] = "my data here"; process_data(something); Який працював як очікувалося. Але зараз мені потрібна динамічність std::vector, тому я спробував цей код замість цього: vector<char> something; *cut* process_data(something); Питання …
160 c++  stl  vector 

3
Які гарантії складності стандартних контейнерів?
Мабуть ;-) стандартні контейнери дають певну форму гарантій. Який тип гарантій і чим саме відрізняються різні типи контейнерів? Працюючи зі сторінки SGI (про STL ), я придумав це: Container Types: ================ Container: Forward Container Reverse Container Random Access Container Sequence Front Insert Sequence Back Insert Sequence Associative Container Simple Associative …
160 c++  stl  containers  big-o 

9
C ++ valarray проти вектора
Мені дуже подобаються вектори. Вони витончені і швидкі. Але я знаю, що ця річ під назвою валярій існує. Чому я використовую валярій замість вектора? Я знаю, що у валярій є синтаксичний цукор, але крім них, коли вони корисні?

6
Чи відомий порядок ітерації через std :: map (та гарантований стандартом)?
Що я маю на увазі, це те, що ми знаємо, що std::mapелементи впорядковані за клавішами. Отже, скажімо, що ключі - цілі числа. Якщо я перейду std::map::begin()до std::map::end()використання a for, чи гарантує стандарт стандарт, що я повторюватимуться через елементи з ключами, відсортовані у порядку зростання? Приклад: std::map<int, int> map_; map_[1] = …
158 c++  dictionary  stl  standards 

2
Що означає ітератор-> другий?
У C ++, який тип a std::map<>::iterator ? Ми знаємо, що об’єкт itтипу std::map<A,B>::iteratorмає перевантажений, operator ->який повертає a std::pair<A,B>*, і що std::pair<>має a firstі secondmember. Але, що відповідають цим двом членам, і чому ми маємо доступ до значення, що зберігається на карті як it->second?
157 c++  stl  iterator 


5
Коли вектори виділяються, вони використовують пам'ять на купі чи стеку?
Чи правдиві всі наступні твердження? vector<Type> vect; //allocates vect on stack and each of the Type (using std::allocator) also will be on the stack vector<Type> *vect = new vector<Type>; //allocates vect on heap and each of the Type will be allocated on stack vector<Type*> vect; //vect will be on stack …
151 c++  stl  vector  stack  heap 

3
Як перевірити, чи містить std :: map ключ, не роблячи вставлення?
Єдиний спосіб , яким я знайшов , щоб перевірити наявність дублікатів, вставляючи і перевірку std::pair.secondдля false, але проблема полягає в тому , що це все ще вставляє що - то , якщо ключ не використовується, в той час як то , що я хочу , це map.contains(key);функція.
148 c++  stl  map 


11
Як видалити елемент з вектору stl з певним значенням?
Я переглянув документацію API для вектору stl і помітив, що в векторному класі не існує методу, який дозволяв би видалити елемент із певним значенням. Це здається звичайною операцією, і здається дивним, що для цього немає побудованого способу.
145 c++  stl 


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.