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

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

5
Як використовувати чергу пріоритетів STL для об'єктів?
class Person { public: int age; }; Я хочу зберігати об'єкти класу Person у черзі пріоритетів. priority_queue< Person, vector<Person>, ??? > Я думаю, що мені потрібно визначити клас для порівняння, але я не впевнений у цьому. Крім того, коли ми пишемо, priority_queue< int, vector<int>, greater<int> > Як працює більший?
80 c++  stl 

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

15
Чи існує готова до замовлення безблокована черга або реалізація хешу в C ++ [закрито]
Зачинено. Це питання не відповідає вимогам щодо переповнення стека . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб воно було актуальним для переповнення стека. Закрито 2 роки тому . Удосконалюйте це питання Я досить багато гуглив за чергою без блокування в C ++. Я знайшов трохи коду …
80 c++  stl  lock-free 

10
як ініціалізувати 'const std :: vector <T>' як масив змінного струму
Чи існує елегантний спосіб створити та ініціалізувати const std::vector&lt;const T&gt;подібне const T a[] = { ... }до фіксованої (і малої) кількості значень? Мені потрібно часто викликати функцію, яка очікує значення a vector&lt;T&gt;, але в моєму випадку ці значення ніколи не зміняться. В принципі я думав про щось подібне namespace { …
79 c++  stl 

7
Чи нормально успадковувати реалізацію з контейнерів STL, а не делегувати?
У мене є клас, який адаптує std :: vector для моделювання контейнера доменних об'єктів. Я хочу відкрити для користувача більшість API std :: vector, щоб вони могли використовувати звичні методи (розмір, очищення, at тощо ...) та стандартні алгоритми на контейнері. Здається, це повторюваний шаблон для мене в моїх проектах: class …
79 c++  stl 

5
Як відсортувати вектор STL?
Я хотів би відсортувати vector vector&lt;myClass&gt; object; Де myclassмістить багато intзмінних. Як я можу відсортувати своє vectorза будь-якою конкретною змінною даних myClass.
76 c++  sorting  stl 

10
UTF8 до / з широкого перетворення символів у STL
Чи можна перетворити рядок UTF8 у std :: string у std :: wstring і навпаки незалежно від платформи? У програмі Windows я б використовував MultiByteToWideChar та WideCharToMultiByte. Однак код складений для декількох ОС, і я обмежуюсь стандартною бібліотекою C ++.

6
C ++ 11 std :: встановити функцію порівняння лямбда-сигналу
Я хочу створити std::setспеціальну функцію порівняння. Я міг би визначити це як клас з operator(), але я хотів насолодитися можливістю визначати лямбда-де, де він використовується, тому я вирішив визначити лямбда-функцію в списку ініціалізації конструктора класу, який є std::setчленом. Але я не можу зрозуміти тип лямбди. Перш ніж продовжувати, ось приклад: …

29
Яких пасток на C ++ слід уникати? [зачинено]
Важко сказати, про що тут питають. Це питання неоднозначне, розпливчасте, неповне, надто широке або риторичне, і на нього не можна обґрунтовано відповісти у його нинішній формі. Щоб отримати допомогу щодо роз’яснення цього питання, щоб його можна було знову відкрити, відвідайте довідковий центр . Закрито 9 років тому . Я пам’ятаю, …
74 c++  stl 

11
Вбудований C ++: використовувати STL чи ні?
Я завжди був вбудованим програмним інженером, але зазвичай на рівні 3 або 2 стеку OSI. Я насправді не апаратний хлопець. Як правило, я завжди робив телекомунікаційні продукти, як правило, ручні / стільникові телефони, що, як правило, означає щось на зразок процесора ARM 7. Зараз я опиняюсь у більш загальному вбудованому …
74 c++  stl  embedded 

4
Контейнер STL із специфічним типом як загальний аргумент
Чи я можу зробити функцію, яка приймає контейнер із певним типом (скажімо std::string) як параметр void foo(const std::container&lt;std::string&gt; &amp;cont) { for(std::string val: cont) { std::cout &lt;&lt; val &lt;&lt; std::endl; } } і називати його для кожного типу контейнера stl як вхідного? як вище? std::set&lt;std::string&gt; strset; std::vector&lt;std::string&gt; strvec; std::list&lt;std::string&gt; strlist; foo(strset); …

4
Чи правильно використовувати std :: transform with std :: back_inserter?
Cppreference має такий приклад коду для std::transform: std::vector&lt;std::size_t&gt; ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -&gt; std::size_t { return c; }); Але це також говорить: std::transformне гарантує порядок застосування unary_opабо binary_op. Щоб застосувати функцію до порядку послідовності або застосувати функцію, що модифікує елементи послідовності, використовуйте std::for_each. Імовірно, це дозволяє паралельні …

3
Час компіляції для визначення найменш дорогого типу аргументу
У мене є шаблон, який виглядає приблизно так template &lt;typename T&gt; class Foo { public: Foo(const T&amp; t) : _t(t) {} private: const T _t; }; Чи є розумна метапрограмування шаблону, щоб уникнути використання посилання const у випадках, коли тип аргументу тривіальний, як bool або char? подібно до: Foo(stl::smarter_argument&lt;T&gt;::type t) …
15 c++  stl 

2
Як вектор як ключ працює внутрішньо в C ++?
Ця відповідь відповідає, що STL-карта з вектором для ключа вектор може використовуватися як ключ. Отже, коли ми використовуємо вектор як ключ. Як це насправді працює, оскільки ключ повинен бути унікальним, тому коли ми вставляємо інший вектор з тими ж елементами, буде mapперевірка на повторність елемента за елементом чи ім'я вектора …
14 c++  arrays  dictionary  vector  stl 

1
Чи є `string.assign (string.data (), 5)` чітко визначеним або UB?
Співробітник хотів написати це: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Я сказав, що повернення string_viewзробило мене неспокійно апріорі , і, крім того, псевдонім тут для мене був схожим на UB. Я можу з упевненістю сказати, що line = strip_whitespace(line)в даному випадку рівнозначно line = std::string_view(line.data(), …

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