跳到主要内容

std::string operator std::string_view

constexpr operator std::basic_string_view<CharT, Traits>() const noexcept;

返回一个 std::basic_string_view,其构造方式等同于:

std::basic_string_view<CharT, Traits>(data(), size())

参数

(无)

返回值

表示字符串全部内容的字符串视图。

复杂度

常数 - O(1)

异常

(无)

备注

程序员有责任确保生成的字符串视图不会比字符串本身寿命更长。

std::string get_string();
int f(std::string_view sv);

int x = f(get_string()); // OK
std::string_view sv = get_string(); // Bad: holds a dangling pointer

示例

Main.cpp
#include <iostream>
#include <string>
#include <string_view>

void show_wstring_size(std::wstring_view wcstr_v)
{
std::cout << wcstr_v.size() << " code points\n";
}

int main()
{
std::string cppstr = "ラーメン"; // narrow string
std::wstring wcstr = L"ラーメン"; // wide string

// Implicit conversion from string to string_view
// via std::string::operator string_view:
std::string_view cppstr_v = cppstr;

std::cout << cppstr_v << '\n'
<< cppstr_v.size() << " code units\n";

// Implicit conversion from wstring to wstring_view
// via std::wstring::operator wstring_view:
show_wstring_size(wcstr);
}
输出
ラーメン
12 code units
4 code points
本文源自此 CppReference 页面。它可能为了改进或编辑者偏好而有所改动。点击“编辑此页面”以查看本文档的所有更改。
悬停查看原始许可证。

std::string operator std::string_view

constexpr operator std::basic_string_view<CharT, Traits>() const noexcept;

返回一个 std::basic_string_view,其构造方式等同于:

std::basic_string_view<CharT, Traits>(data(), size())

参数

(无)

返回值

表示字符串全部内容的字符串视图。

复杂度

常数 - O(1)

异常

(无)

备注

程序员有责任确保生成的字符串视图不会比字符串本身寿命更长。

std::string get_string();
int f(std::string_view sv);

int x = f(get_string()); // OK
std::string_view sv = get_string(); // Bad: holds a dangling pointer

示例

Main.cpp
#include <iostream>
#include <string>
#include <string_view>

void show_wstring_size(std::wstring_view wcstr_v)
{
std::cout << wcstr_v.size() << " code points\n";
}

int main()
{
std::string cppstr = "ラーメン"; // narrow string
std::wstring wcstr = L"ラーメン"; // wide string

// Implicit conversion from string to string_view
// via std::string::operator string_view:
std::string_view cppstr_v = cppstr;

std::cout << cppstr_v << '\n'
<< cppstr_v.size() << " code units\n";

// Implicit conversion from wstring to wstring_view
// via std::wstring::operator wstring_view:
show_wstring_size(wcstr);
}
输出
ラーメン
12 code units
4 code points
本文源自此 CppReference 页面。它可能为了改进或编辑者偏好而有所改动。点击“编辑此页面”以查看本文档的所有更改。
悬停查看原始许可证。