コンテンツにスキップ

最終更新: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

関連トピック

コメント