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 天前
算法竞赛C++常用的STL
c++·算法
weilx12344 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
Smileyqp沛沛4 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
吞下星星的少年·-·4 天前
C++ 萌新语法入门篇
c++·算法比赛
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
another heaven4 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法