C++17尝鲜:string_view

string_view

string_view 是C++17所提供的用于处理只读字符串的轻量对象。

  • 通过调用 string_view 构造器可将字符串转换为 string_view 对象。
  • string_view通常用于函数参数类型,可用来取代 const char* 和 const string&。
  • string_view的成员函数即对外接口与 string 相类似,但只包含读取字符串内容的部分。
  • string_view字面量的后缀是 sv。(string字面量的后缀是 s)

实例

#include <string>
#include <iostream>

using namespace std;

// void process(const char* sv)
// void process(const string& sv)
void process(string_view sv)
{
    cout << sv << endl;
    for (char ch : sv)
        cout << ch;
    cout << sv[2] << endl;
}

int main()
{
    string_view sv = "hello"sv;
    cout << sv << endl;
    string_view sv2 = "hello";
    cout << sv2 << endl;
    string_view sv3 = "hello"s;
    cout << sv3 << endl;
    string_view sv4("hello", 4);
    cout << sv4 << endl;
    process("hello");
    process("hello"s);
}

/*
hello
hello
hello
hell
hello
hellol
hello
hellol
*/

原文地址:https://www.cnblogs.com/zwvista/p/9233396.html

时间: 2024-10-08 07:51:50

C++17尝鲜:string_view的相关文章

C++17尝鲜:变长using声明

using 声明 先来看 using 声明在类中的应用: 代码1 #include <iostream> using namespace std; struct A { void f(int) {cout << "A::f(int)" << endl;} }; struct S : A { }; int main() { S s; s.f(1); // A::f(int) } 类 S 继承了类 A 的成员函数 f,所以类 S 的实例 s 调用 f 输

15.EVE-NG小众镜像,助力尝鲜!

文章列表(关注微信公众号EmulatedLab,及时获取文章以及下载链接) 1.EVE-NG介绍(EVE-NG最好用的模拟器,仿真环境时代来临!) 2.EVE-NG安装过程介绍 3.EVE-NG导入Dynamips和IOL 4.EVE-NG导入QEMU镜像 5.EVE-NG关联SecureCRT,VNC,Wireshark 6.EVE-NG网卡桥接,带您走进更高级的实验 7.EVE-NG硬盘扩容,存储海量镜像 8.EVE-NG定制个人镜像,脚本快速导入 9.EVE-NG容纳H3C.Huawei,

屌丝就爱尝鲜头——java8再判断

这节,我们来通过具体的实例来看看Java8的具体用法. 首当其冲,就是lambda用法. 这里的案例,就是用lambda来实现runnable接口,我们知道以前用匿名内部类的方式来实现runnable接口,这种方法晦涩难懂,用lambda表达式实现以后,这样的代码清爽了不少.上两种对比的代码: public static void main(String[] args) { new Runnable() { public void run() { System.out.println("这是匿名

屌丝就爱尝鲜头——java8总结晒一晒

前两节讨论了那么多,这节就是两个议题,讨论了新增的日期的api,再说一说我的Java8的一些心得体会了. 首先,我们必须要搞清楚Java 8 为什么要增加新的日期的api,这是由于老的日期api非常的繁琐,使用起来非常不方便,Java作者奉行这变者通不变者死的原则,于是增加了这些api.下面,我们总点介绍这几个类--LocalDate类.LocalTime类.LocalDateTime类.DateTimeFormatter类,zoneDate类.一个个来看: Ⅰ.LocalDate类--返回日期

屌丝就爱尝鲜头——java8初体验

Java8已经推出,让我们看看他的魅力.让我们看看他改变较大的部分. 一.java8概述 Java8是由Oracle(甲骨文)公司与2014年3月27日正式推出的.Java8同时推出有3套语言系统,分别是Java SE8.Java SE Emebbled 8.Java ME8. Java SE8较以往的系统增强的功能有: ①增强了对集合式操作语言--lambda表达式的支持,"Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演

Cocos2d-x v3.0正式版尝鲜体验【3】 Label文本标签

Cocos2d-x在新版本中加入了新的Label API,和以往不同的是,2.x的版本是通过三个不同的类来创建不同的文本标签,而现在是模仿着精灵的创建方式,一个类创建不同形式的文本,不过核心内容还是差不多的. 这是新的Label类结构图 在2.x的系列中,有三种文本,分别是TTF,BMFont和Atlas.在3.0中,将TTF拆分成两种,下面就分别看一下这四种文本的创建. 1.Label::createWithTTF 这是需要使用ttf格式字体文件的创建方式 TTFConfig config("

微信小程序的原型设计尝鲜

"小程序"来了,大世界要变了?微信小程序可能是近期业绩最火的话题之一了. 这个根植于微信流量巨无霸的应用,将对应用市场.对微商.电商.对企业的开发成本.获客成本将产生深远影响?将制造出绕开Google Play和AppStore的另一大App体系?将实现"知人性"的PM张小龙先生的"用后即走"的轻量App之梦?将秒杀传统的App? 虽有海量追捧者趋之若鹜,但也有冷静人士淡定的白眼.但无论如何,腾讯这步棋子既然落在了棋盘上,绝不能悔棋,更不可能半途

二、大数据生态圈尝鲜

Title: 二.大数据生态圈尝鲜 Author: Martin Date: 2016-02-24 18:00 Summary: 先通过几张图对大数据的生态圈有个宏观的认知, 搞清楚有哪些知识点需要掌握, 这些知识点后面都会详细讲解. 技术生态圈: hadoop生态圈: spark生态圈: 企业生态圈: 来自为知笔记(Wiz)

51CTO学院新课限时尝鲜计划—爆款课程打造的利器

各位老师好,学院的内容一直都在持续更新,老师源源不断的上线新课程,上线速度也是越来越快,因此学院的小伙伴们准备"在首页第一屏增加一个新内容曝光入口",打造"新课限时尝鲜计划",平台考虑给新课程和新老师更大量的曝光量,推出了"新课限时尝鲜计划",具体内容如下: 一.首页新增[新课限时尝鲜]板块 * 申请加入计划的新课会在学院首页第一屏入口曝光 * 学员限时免费学习 * 免费到期后,课程将恢复原价,并引导学员去购买该讲师的课程 * 在内容免费期间,如