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

伊宁市住房与城乡建设局网站wordpress电商网站

伊宁市住房与城乡建设局网站,wordpress电商网站,网站备案后 如何建设,注册域名b站Cherno的课[76]-[80] 一、如何处理OPTIONAL数据 std::optional二、单一变量存放多类型的数据 std::variant三、如何存储任意类型的数据 std::any四、如何让C运行得更快五、如何让C字符串更快 一、如何处理OPTIONAL数据 std::optional std::optional C17 数据是否存在是可选…

b站Cherno的课[76]-[80]

  • 一、如何处理OPTIONAL数据 std::optional
  • 二、单一变量存放多类型的数据 std::variant
  • 三、如何存储任意类型的数据 std::any
  • 四、如何让C++运行得更快
  • 五、如何让C++字符串更快

一、如何处理OPTIONAL数据 std::optional

std::optional C++17
数据是否存在是可选的

#include <iostream>
#include <fstream>
#include <optional>std::optional<std::string> ReadFileAsString(const std::string& filepath)
{std::ifstream stream(filepath);if (stream){std::string result;// read filestream.close();return result;}return {};
}int main()
{std::optional<std::string> data = ReadFileAsString("data.txt");if (data.has_value()){std::cout << "File read successfully!\n";}else{std::cout << "File could not be opened\n";}std::cin.get();
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#include
std::optional function(param){statement; return type;}
auto result = function();
1: result.has_value()判断数据是否存在, 通过result.value()获取数据
2: result.value_or(xxx)其中xxx作为默认值,如果存在数据返回数据,不存在返回xxx
3:通过if (result)判断数据是否存在

注: 使用场景—目标值可能存在也可能不存在,比如读取文件并返回内容,可能读取成功有数据,读取成功无数据,读取不成功。

二、单一变量存放多类型的数据 std::variant

C++17的特性
C++17新的标准库给我们的类
std::variant
variant本质上就像类型安全的联合体union

#include <iostream>
#include <variant>int main()
{std::variant<std::string, int> data;std::cout << sizeof(int) << "\n";std::cout << sizeof(std::string) << "\n";std::cout << sizeof(data) << "\n";data = "wm";std::cout << std::get<std::string>(data) << "\n";//data.index();// 0if (auto* value = std::get_if<std::string>(&data)){std::string& v = *value;}else{}data = 2;std::cout << std::get<std::string>(data) << "\n";std::cout << std::get<int>(data) << "\n";std::cin.get();
}

在这里插入图片描述

它是为你创建了一个结构体或类。
它只是将这两种数据类型存储为那个类或结构体中的成员

std::variant(C++17引入)和传统的union(C语言继承的特性)都用于存储不同类型的值,但它们在设计、安全性和功能上有显著差异。

从技术上讲,union仍然是更有效率和更好的
然而,variant更加类型安全,不会造成未定义行为,你应该使用它,
除非你做的是底层优化,把内存大小保持在一个较低的位置,不管是什么原因,比如CPU处理
或者只是因为你想使用尽可能少的内存

但是,如果您是在桌面平台上,您可以自由地使用更多的内存
和更多的处理能力,那么std::variant在技术上更安全
在这里插入图片描述
在这里插入图片描述

#include
std::variant<type1, type2> data;
data = type1(xxx)
类似于union,type1与type2表示存储的数据类型。

读取:
1: std::get(data)
2: auto *value = std::get_if(type)(&data)
注:类型安全

在这里插入图片描述

三、如何存储任意类型的数据 std::any

void指针
std::any

variant和any的区别

variant需要你列出类型

这和它们的存储方式有关,variant只是一个类型安全的union,
意思是它把所有的数据都存储在一个union里

small types 小类型
它只是把它们存储为一个Union,这意味着对于小类型small type来说,
它的工作方式与variant完全相同

如果你有一个大的类型,它会带你进入大存储空间的void*,
在这种情况下,它会动态分配内存
动态分配内存不利于性能

总结一下这是如何工作的,如果你在小型类型上使用variant或any。
比如int,float。比如一个用于类的vector或类似的东西
比如math库等等,都没问题

它们会以完全相同的方式工作

如果你需要更多的存储空间,std::any会动态分配,
但是std::variant不会

所以换句话说,除了更加类型安全和有一点限制性(这是一件好事)之外,std::variant在处理较大数据时也会执行得更快,而这些数据又需要避免动态内存分配

四、如何让C++运行得更快

如何通过多线程提高性能
C++11的引入 std::asnyc futures

五、如何让C++字符串更快


文章转载自:

http://6NtbH6EK.yxbrn.cn
http://KiLm79CA.yxbrn.cn
http://J5ut8cxC.yxbrn.cn
http://IbI9eMH7.yxbrn.cn
http://1jL391Wr.yxbrn.cn
http://D1PyUXI6.yxbrn.cn
http://TE4ajBKQ.yxbrn.cn
http://sYFDbGtd.yxbrn.cn
http://BWZwVjjB.yxbrn.cn
http://qnhhiEVN.yxbrn.cn
http://nHUq8UjI.yxbrn.cn
http://UpfpjOi7.yxbrn.cn
http://AtQBcObW.yxbrn.cn
http://FXARdRZZ.yxbrn.cn
http://8mbohTKG.yxbrn.cn
http://X4zMOyQt.yxbrn.cn
http://zHfFbK8w.yxbrn.cn
http://IhX9zWWK.yxbrn.cn
http://pLVYiJrM.yxbrn.cn
http://877BSekc.yxbrn.cn
http://Vgpf3f58.yxbrn.cn
http://pQs3GgOK.yxbrn.cn
http://H08NQhLd.yxbrn.cn
http://5SCjjBBz.yxbrn.cn
http://yaohDMKI.yxbrn.cn
http://y4SG6wDG.yxbrn.cn
http://ZUSAJhpt.yxbrn.cn
http://uIL7Zc4B.yxbrn.cn
http://ojsAytmQ.yxbrn.cn
http://ouBeAn36.yxbrn.cn
http://www.dtcms.com/wzjs/620158.html

相关文章:

  • 搜索网站开发背景做详情页比较好的网站
  • 建一个团购网站需要多少钱网站 语言切换怎么做
  • 好友介绍网站怎么做怎么制作网站栏目页主页
  • 陕西公司网站建设网站开发 营业执照
  • 北京做网站公司哪家强营销网页设计
  • 网站第一步建立做第三方网站注意什么意思
  • 广州网站设计费用服装设计公司图片
  • 最方便在线网站开发南昌网优化seo公司
  • 旅游网站怎么建设wordpress添加社交媒体链接
  • 手机开发者网站企业网站管理系统 才能湖南岚鸿
  • 工地招聘网站必应搜索推广
  • 网站管理制度建设做视频自媒体要投稿几个网站
  • 深圳市建设交易中心官网seo经验
  • 高端网站定制的方法网站如何增加流量
  • 网站教程网为啥都用wordpress
  • 网站开发自学网风景网页设计图片
  • 什么软件可以找做网站的云南人
  • 自已建外贸网站深圳网站设计营销型
  • 科技建筑公司网站外贸自建站费用
  • 贵阳网站建设服务公司百度关键词排行榜
  • 网站被抓取简述网站建设的五类成员
  • html5网站链接标签标书制作员工作内容
  • 泗洪网站手机怎么样自己做网站
  • 面包机做面包网站网站开发用什么字体
  • 鄂伦春网站建设企业网站建设好处
  • 哈尔滨建设厅官方网站汽车专业科技网站建设
  • 黄金网站网站建设描述怎么写
  • 自己做的网站如何兼容前端静态网页模板
  • 怎么自己创立网站门户网站做pos机
  • 17网站一起做网店东莞wordpress删除中文