最終更新:2026-10-12
STL string 面接問題解説¶
今回は文字列に関する面接問題を紹介します。全部で4つのケースがあり、この4箇所で何が起こるかをコメント欄で回答してみてください。
std::stringは皆さんよくご存じでしょう。std::string_viewは17以降に導入されたビューで、ご存じない方は調べてみてください。以下には2つのリテラルがあり、それぞれstringリテラルとstring_viewリテラルで、s、svで表されます。
最初の2つの問題はどちらも関数がstd::string_viewを返すものですが、少し違いがあります。1つはc-style stringベースで、もう1つはstringベースです。
後の2つの問題は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++那些事
- STL 空基底クラス最適化 EBO | C++那些事
- STL 手書きハッシュテーブル実装 | C++那些事
- STL hashtable ハッシュテーブル | C++那些事
- STL イテレータソースコード解析 | C++那些事
- STL list ソースコード解析 | C++那些事
- STL map と multimap | C++那些事
- STL queue と stack ソースコード解析 | C++那些事