C++17 からの string_view は substr の代わりに2021年06月01日 12時19分02秒

C++ から導入された std::string_view は文字列の一部を参照するクラス。string::substr() 等では、別途メモリを割り当てるが、string_view は割り当てられているメモリをそのまま利用する。詳細は Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」 が分かりやすい。

そんな分けで簡単な例。

% cat string_view.cpp
#include <string>
#include <string_view>
#include <iostream>

int main()
{   
    std::string s( "Hello C++" );
    char ch[] = "Hello C++";

    std::string_view s1( &s[ 0 ], 6 );
    std::string_view s2( ch + 6, 3 );

    std::cout << s1 << std::endl;
    std::cout << s2 << std::endl;
}
実行結果。
% c++ -std=c++17 string_view.cpp
% ./a.out 
Hello 
C++