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.

相关推荐
阿里嘎多学长42 分钟前
2026-09-05 GitHub 热点项目精选
开发语言·程序员·github·代码托管
古少侠1 小时前
用 DS随心转 把 AI 画的 Mermaid 流程图转成 Word 里的高清图
开发语言·c#·word
FFZero11 小时前
[mpv架构] (4) demux 线程到底在“预读“什么?
c++·架构·音视频·多媒体
万年咸鱼1 小时前
Java BufferedOutputStream 详解:原理、用法与性能优化
java·开发语言·性能优化
西西弗Sisyphus1 小时前
C++ 实现 替代 OpenCV resize INTER_LINEAR 的一种方式
c++·opencv
万年咸鱼1 小时前
Java BufferedInputStream 详解:原理、用法与实战
java·开发语言·python
weixin199701080161 小时前
[特殊字符]《二手ERP × 闲鱼消息驱动架构:正向+逆向交易消息如何驱动WMS出库与回传》(附Python源码)
开发语言·python·架构
wabs6661 小时前
关于二叉树【力扣107.二叉树的层序遍历II的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历
galaxy_strive1 小时前
Qt C++插件化编写项目(1)
开发语言·c++·qt