Запитання з тегом «c++-standard-library»

У мові програмування С ++ Стандартна бібліотека С ++ - це сукупність класів та функцій, які можуть бути написані базовою мовою, а можуть і не записані, і є частиною С ++

4
Як порівняти підпис двох функцій?
Чи є спосіб перевірити, чи мають дві функції однаковий підпис? Наприклад: int funA (int a, int b); int funB (int a, int b); float funC (int a, int b); int funD (float a, int b); У цьому прикладі funAі funBє єдиною комбінацією функцій, яку слід повернути true.

2
Чому `std :: string :: find ()` не повертає кінцевий ітератор під час відмов?
Я вважаю, що поведінка std::string::findсуперечить стандартним контейнерам C ++. Напр std::map<int, int> myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Але для струни, std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Чому замість цього не слід myStr.find('!')повернутись ?myStr.end()std::string::npos Оскільки std::stringдещо особливе порівняно …

2
Чи дозволяється GCC9 уникати безцінного стану std :: variant?
Нещодавно я спостерігав за обговоренням Reddit, що призвело до хорошого порівняння std::visitоптимізації між компіляторами. Я помітив таке: https://godbolt.org/z/D2Q5ED І GCC9, і Clang9 (я думаю, вони поділяють один і той же stdlib) не генерують код для перевірки та викидання безцінного винятку, коли всі типи відповідають деяким умовам. Це призводить до кращого …

1
Яким чином shift_right () призначений для впровадження в C ++ 20?
У C ++ 20 <algorithm>заголовок отримує два нові алгоритми: shift_left()іshift_right() . Вони обидва приймають будь-якого LegacyForwardIterator. Бо shift_left()визначено, що "ходи виконуються у порядку зростання, iпочинаючи з ​0"; для shift_right(), зазначено, що "якщо ForwardItвідповідає вимогам LegacyBidirectionalIterator, то переміщення виконуються у порядку зменшення, iпочинаючи з last - first - n - 1". …

1
Порівнюючи std :: string та літеральні рядки в стилі C
Припустимо, у мене є такий код: #include <iostream> #include <string> #include <iomanip> using namespace std; // or std:: int main() { string s1{ "Apple" }; cout << boolalpha; cout << (s1 == "Apple") << endl; //true } Моє запитання: як система перевіряє між цими двома? s1є об'єктом , а "Apple"являє …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.