当前位置: 首页 > news >正文

如何做自己网站云播自己怎么建网站

如何做自己网站云播,自己怎么建网站,莆田做网站排名,温州网站开发app制作文章目录 轻松理解c17的string_view设计初衷常见用法构造 std::string_view常用操作作为函数参数 注意事项总结 轻松理解c17的string_view std::string_view 是 C17 引入的一个轻量级、不拥有(non-owning)的字符串视图类。它的设计初衷是提供一种高效、…

文章目录

  • 轻松理解c++17的string_view
      • 设计初衷
      • 常见用法
        • 构造 `std::string_view`
        • 常用操作
        • 作为函数参数
      • 注意事项
      • 总结

轻松理解c++17的string_view

std::string_view 是 C++17 引入的一个轻量级、不拥有(non-owning)的字符串视图类。它的设计初衷是提供一种高效、简便的方法来操作字符串,而不需要复制字符串数据,从而提高性能。以下是 std::string_view 的详细介绍,包括其设计初衷和常见用法。

设计初衷

  1. 高效性std::string_view 提供了一种不需要复制字符串数据的方式来操作字符串。这对于需要传递或处理大量字符串数据的场景非常有用,因为它避免了不必要的内存分配和数据复制。
  2. 简便性:使用 std::string_view 可以避免繁琐的字符指针操作,同时提供类似于 std::string 的接口,使得代码更易读、更易维护。
  3. 兼容性std::string_view 可以与现有的字符串处理代码无缝集成。它可以从 C 风格的字符串(const char*)、std::string 等类型构造,并提供接口与这些类型进行互操作。

常见用法

构造 std::string_view

std::string_view 可以从多种字符串类型构造:

cpp
Copy code
#include <iostream>
#include <string>
#include <string_view>int main() {// 从 C 风格字符串构造const char* cstr = "Hello, world!";std::string_view sv1(cstr);// 从 std::string 构造std::string str = "Hello, C++17!";std::string_view sv2(str);// 从部分字符串构造std::string_view sv3(str.c_str(), 5);std::cout << sv1 << '\n';std::cout << sv2 << '\n';std::cout << sv3 << '\n'; // 输出 "Hello"return 0;
}
常用操作

std::string_view 提供了类似于 std::string 的接口,可以进行许多常见的字符串操作:

#include <iostream>
#include <string_view>int main() {std::string_view sv = "Hello, string_view!";// 获取字符串长度std::cout << "Length: " << sv.size() << '\n';// 访问字符std::cout << "First character: " << sv[0] << '\n';// 子串std::string_view sv_sub = sv.substr(7, 10);std::cout << "Substring: " << sv_sub << '\n';// 查找字符size_t pos = sv.find('s');if (pos != std::string_view::npos) {std::cout << "Found 's' at position: " << pos << '\n';}// 比较if (sv == "Hello, string_view!") {std::cout << "The strings are equal.\n";}return 0;
}
作为函数参数

std::string_view 常用作函数参数,因为它可以避免不必要的字符串拷贝,提高函数调用的效率:

#include <iostream>
#include <string_view>void print_string(std::string_view sv) {std::cout << sv << '\n';
}int main() {std::string str = "Hello, efficient world!";print_string(str);            // 从 std::string 传递print_string("Hello, world!"); // 从 C 风格字符串传递return 0;
}

注意事项

  1. 生命周期std::string_view 不拥有它指向的字符串数据。因此,确保 std::string_view 的生命周期不超过它所指向的字符串数据的生命周期是非常重要的,否则会导致未定义行为。
  2. 不可变性std::string_view 视图中的字符串数据是不可变的。它不提供修改字符串数据的接口。如果需要修改字符串数据,应使用 std::string 或其他可变字符串类型。

总结

std::string_view 是一个高效的、不拥有的字符串视图类,设计用于提高字符串处理的性能和简便性。它在不复制字符串数据的情况下,提供了丰富的字符串操作接口,使得字符串处理更高效、代码更简洁。
在这里插入图片描述

http://www.ds6.com.cn/news/32469.html

相关文章:

  • 做网页向网站提交数据今日热点新闻2022
  • 做网站公司-深圳信科竞价推广托管公司价格
  • 做网站好还是做app好销售课程培训视频教程
  • 济宁政府网站建设网站seo最新优化方法
  • 做毕业设计做网站真实数据来源网站制作哪家公司好
  • 网站建设做到哪些内容网站关键词优化排名推荐
  • 网站qq线客服咋做阿里云com域名注册
  • 网站域名使用费用qq群推广平台
  • 做外贸网站的公司广州公司关键词网络推广
  • 海淀石家庄网站建设sem是什么分析方法
  • window做网站的软件下载长沙百度关键词排名
  • 科技公司网站建设方案书模板seo优化个人博客
  • 什么做直播网站百度搜索引擎优化的养成良好心态
  • 网站主题有哪些内容网页设计与制作考试试题及答案
  • php网站开发报告持续优化完善防控措施
  • 网站开发人员需求分析网页seo是什么意思
  • wordpress评论导出免费的电脑优化软件
  • 中国最大的做网站的公司深圳seo优化推广公司
  • 郑州网站开发培训价格公司营销策划方案案例
  • 网站上传视频怎么做对seo的认识和理解
  • 企业网站手机版模板免费下载互联网项目
  • 手机网站支持微信支付吗怎么建网站
  • 本网站正在建设中深圳百度推广电话
  • 马鞍山网站建设哪里有最新百度新闻
  • java网站建设教程黑五类广告推广
  • 怎么利用网站做cpa推广信息互联网推广
  • 德阳企业品牌网站建设网站seo搜索引擎优化怎么做
  • 自己服务器做网站服务器备案seo排名优化软件有
  • 昆明seo博客上海正规seo公司
  • 6网站免费建站seo二级目录