Последнее обновление:2026-10-12
Разбор вопросов собеседования про STL string¶
Сегодня поделюсь с вами задачей про строки, связанной с собеседованиями: всего 4 случая. Напишите в комментариях, что произойдёт в этих четырёх местах.
std::string должен быть знаком каждому, а std::string_view — это представление, введённое после C++17; при необходимости почитайте о нём. Ниже два литерала: строковый литерал и литерал string_view, обозначаемые s и sv.
Первые два вопроса — функции, возвращающие std::string_view, но с некоторым различием: одна основана на c-style string, другая — на string.
Последние два вопроса — построение из строкового литерала и из литерала string_view.
Итак, задача описана — до встречи в комментариях~
std::string_view getBar() {
std::string b{"it is bar."};
return b;
}
std::string_view getFoo() {
return "It is foo.";
}
using namespace std::string_literals;
using namespace std::string_view_literals;
std::cout << getFoo() << std::endl; // 1
std::cout << getBar() << std::endl; // 2
std::string_view svf{"Hello foo"s};
std::cout << svf << std::endl; // 3
std::string_view svff{"Hello foo"sv};
std::cout << svff << std::endl; // 4
Похожие темы¶
- Анализ исходников STL array | C++那些事
- Глубокий анализ STL string | C++那些事
- Анализ исходников STL deque | C++那些事
- Оптимизация пустого базового класса EBO в STL | C++那些事
- Реализация хеш-таблицы своими руками | C++那些事
- Хеш-таблица STL hashtable | C++那些事
- Анализ исходников STL итераторов | C++那些事
- Анализ исходников STL list | C++那些事
- STL map и multimap | C++那些事
- Анализ исходников STL queue и stack | C++那些事