std::experimental::basic_string_view<CharT,Traits>::basic_string_view

来自cppreference.com
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性非 TS 功能特性
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
constexpr basic_string_view() noexcept;
(1) (库基础 TS)
constexpr basic_string_view( const basic_string_view& other ) noexcept = default;
(2) (库基础 TS)
template<class Allocator>
basic_string_view( const std::basic_string<CharT, Traits, Allocator>& str ) noexcept;
(3) (库基础 TS)
constexpr basic_string_view( const CharT* s, size_type count );
(4) (库基础 TS)
constexpr basic_string_view( const CharT* s );
(5) (库基础 TS)
1) 默认构造函数。构造空 basic_string_view
2) 复制构造函数。构造与 other 内容相同的视图。
3) 构造以 str.data() 所指向的元素开始的数组的前 str.size() 个字符的视图。
4) 构造以 s 指向的元素开始的数组的前 count 个字符的视图。s 可以包含空字符。若 [ss + count) 不是有效范围则其行为未定义(即便该构造函数并不访问范围中的任何元素也是如此)。
5) 构造由 s 指向的空终止字符串的视图,不包括终止的空字符。视图的长度如同以 Traits::length(s) 确定。若 [ss + Traits::length(s)) 不是有效范围则其行为未定义(即便该构造函数并不访问范围中的任何元素也是如此)。

参数

other - 用以初始化视图的另一个视图
str - 用以初始化视图的 C++ 字符串对象
s - 指向字符数组或 C 字符串的指针,用以初始化视图
count - 视图中要包括的字符数量

异常

4,5) 不抛出。

复杂度

1-4) 常数。
5)s 的长度呈线性。

示例

#include <experimental/string_view>
#include <iostream>
 
int main()
{
    std::string cppstr = "Foo";
    char array[3] = {'B', 'a', 'r'};
 
    std::experimental::string_view cppstr_v(cppstr);
    std::experimental::string_view array_v(array, sizeof array);
 
    std::experimental::wstring_view wcstr_v = L"xyzzy";
 
    std::cout << cppstr_v << '\n'
              << array_v << '\n'
              << wcstr_v.size() << '\n';
}

输出:

Foo
Bar
5

参阅

对视图赋值
(公开成员函数)