c++ string_view

c++ 17的std::string_view是轻量级字符串视图类。测试下:

cpp 复制代码
// 接收 string_view,零拷贝,支持传入多种字符串类型
static void process_text(std::string_view text) {
    std::cout << "字符串内容: " << text << ", 字符串长度: " << text.size() << std::endl;
}

void testString_view(void) { // 测试c++ 17的std::string_view
    std::string str = "Hello, vicky du";
    const char* cstr = "only you...";
    process_text(str);      // 传入 std::string
    process_text(cstr);     // 传入 C 风格字符串
    process_text("张良,萧何,陈平,周勃,韩信,樊哙,英布,彭越,卢绾");// 传入字面量

    std::string_view persons = "张良,萧何,陈平,周勃,韩信,樊哙,英布,彭越,卢绾";
    auto char_count = std::ranges::count_if(persons, [](char c) {
        return (c & 0xC0) != 0x80;
    }); 
    std::cout << "UTF‑8字符数量(汉字+标点): "<< char_count << std::endl;

    // 零拷贝截取子串
    std::string_view sv = "love u";
    std::string_view sub = sv.substr(2, 2); // 仅调整指针和长度
    std::cout << "子串: " << sub << std::endl;
}

运行:

ok.

相关推荐
破茧蝴蝶4 小时前
Python分布式爬虫完整教程
开发语言·python
狗凯之家源码网4 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
远离UE45 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience5 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
一拳一个呆瓜5 小时前
【STL】文件系统导航
c++·stl
All for pursuit.6 小时前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
栈帧之外6 小时前
【C++】STL之set
开发语言·c++
catchadmin7 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
zhanghaha13147 小时前
C++构造函数的一些其他应用(逐词逐句保姆讲解)
c++
jimy18 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++