string_viewの使い方
C++のstd::string_viewは、新しい文字列オブジェクトを作成することなく、文字列へのアクセスと操作を可能にする軽量の所有しない文字列タイプです。以下にstd::string_viewを使用する一般的な使用例を示します。
- ヘッダファイル include:
#include <string_view>
- std::string_view
std::string_view str("Hello, World!"); // 使用字符串字面值创建std::string_view对象
std::string_view str2(str); // 从另一个std::string_view对象创建
std::string_view str3(str.data(), 5); // 从字符指针和长度创建
- 文字列にアクセスする:
std::cout << str << std::endl; // 输出字符串内容
std::cout << str.length() << std::endl; // 输出字符串长度
std::cout << str[0] << std::endl; // 输出字符串的第一个字符
- 文字列の比較:
if (str == str2) {
std::cout << "Strings are equal" << std::endl;
}
if (str.compare(str3) < 0) {
std::cout << "str is less than str3" << std::endl;
}
- 部分文字列を取得します:
std::string_view subStr = str.substr(7, 5); // 从第7个字符开始截取长度为5的子字符串
- 部分文字列を探す:
size_t index = str.find("World"); // 查找子字符串的索引位置
if (index != std::string_view::npos) {
std::cout << "Found at index: " << index << std::endl;
}
- 文字列を範囲ル-プを使用して反復処理する
for (char c : str) {
std::cout << c << std::endl;
}
std::string_viewは文字列の非所有参照であるため、文字列の使用中にはソース文字列の寿命が十分であることを確認する必要があります。 また、std::string_view の操作関数は std::string と似ていますが、完全に同じではありません。 各利用法の詳細については、関連ドキュメントを参照してください。