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

网站建设丷金手指花总系统开发过程中的第一个正式文档是

网站建设丷金手指花总,系统开发过程中的第一个正式文档是,公司网站建设行业怎么样,cms网站建设方案initializer_list 是 C11 中的一个特性&#xff0c;它允许你使用花括号 {} 中的值列表来初始化容器或数组。通常用于初始化标准库容器&#xff0c;比如 std::vector、std::set、std::map 以及数组。 场景一&#xff1a;用初始化列表初始化容器 std::vector<int> arr {…

initializer_list 是 C++11 中的一个特性,它允许你使用花括号 {} 中的值列表来初始化容器或数组。通常用于初始化标准库容器,比如 std::vectorstd::setstd::map 以及数组

场景一:用初始化列表初始化容器

std::vector<int> arr = {1, 2, 3, 4, 5};
std::set<int> myset = {1, 2, 3, 4, 5, 2};
std::map<int, char> mymap = {{1, a}, {2, b}, {3, c}};

这种初始化方式使代码更简洁和可读,在背后使用了 initializer_list 的机制

场景二:直接使用初始化列表

#include <iostream>
#include <initializer_list>int main() 
{std::initializer_list<int> numbers = {1, 2, 3, 4, 5};for (const int& num : numbers) {std::cout << num << " ";}return 0;
}

可以像一般的数组一样使用initializer_list,但这样没有什么太大的意义,如果想节省性能可直接用原始数组,如果想要方便操作可以用std::vector, 这里要说明的是:

  • std::initializer_list 相比于std::vector更为轻量级,它只存储了一个指向列表内存的指针和一个表示元素数量的整数变量,而std::vector还需要维护其插入、迭代、删除等等操作所需要的其他辅助资源。

主要应用场景:初始化一个类的容器成员(让自定义类可以用初始化列表的形式来实例化对象)

考虑一个简单的类MyClass,它包含一个vector容器成员。比较两种不同的构造函数,一种使用std::initializer_list,另一种使用std::vector作为参数:

#include <iostream>
#include <vector>
#include <initializer_list>class MyClass 
{
public:// 构造函数使用 std::initializer_listMyClass(std::initializer_list<int> values) : numbers(values) {}// 构造函数使用 std::vector 作为参数MyClass(const std::vector<int>& values) : numbers(values) {}
private:std::vector<int> numbers;
};int main() 
{// 使用 std::initializer_list 初始化 MyClassMyClass obj1 = {1, 2, 3, 4, 5};// 使用 std::vector 初始化 MyClassstd::vector<int> values = {1, 2, 3, 4, 5};MyClass obj2(values);return 0;
}

可以看到,使用initializer_list的优点

  • 方便。可以用初始化列表初始化我们自定义的类,这玩意儿在某些应用场景下是特别方便且代码可读性极高,各位慢慢探索。
  • 比 std::vector 更轻量和高效。 当你使用 nitializer_lis 作为形参时,在值传递过程中,只包括一个指向初始化列表元素的指针和一个表示元素数量的整数。

注意一下,如果不显示提供initializer_list作为形参的构造函数,是不能用初始化列表来初始化实例对象的。比如,你以为可以,但实际上不可以的这种情况:

class MyClass 
{
public:// 构造函数使用 std::vector 作为参数MyClass(const std::vector<int>& values) : numbers(values) {}private:std::vector<int> numbers;
};int main() 
{MyClass obj1 = { 1, 2, 3, 4, 5 };return 0;
}

在这里插入图片描述


http://www.yayakq.cn/news/584475/

相关文章:

  • 网站建设游戏重庆网站建设坤思特
  • 基地网站建设方案wordpress google主题
  • 河田镇建设局网站做网站优化的协议书
  • 哈尔滨多语言网站建设建设的网站百度搜不到
  • 可以做淘宝店铺开关灯网站网站运营维护的基本工作
  • 佛山市住房建设局网站免费空间如何放网站
  • 海口网站建设方案咨询网站建设需要哪些成本
  • 武进网站建设信息高端建设网站
  • ip网站查询服务器招聘网站推广怎么做
  • 随州网站建设便宜网站发布内容是否过滤
  • 织梦做双语网站做网站的价格是多少
  • 网站域名改版怎么做html网站地图生成器
  • 网站建设技术知识flash网站建设教程
  • 卖信息的网站小程序商城页面设计模板
  • 企业营销类专业网站快批小程序的收费标准
  • 联系昆明网站建设网络营销有哪些具体方法
  • 苏州建设公司网站太原企业网站怎么优化
  • 源码网站怎么搭建平面设计专业学校排名
  • dtcms网站开发教程怎么做网站旅游宣传
  • 标志空间 网站asp网站生成静态
  • 网站建设 类型wordpress页脚内容居中
  • 闵行网站制作公司清洁设备网站模版
  • 设计素材网站哪个最好推荐iis asp网站
  • 做视频网站好做吗口碑好的做pc端网站
  • 成都建好的网站出租十大免费行情软件在线观看
  • 中国购物网站大全排名邯郸大网站
  • 建个商城网站多少钱黄山北京网站建设
  • 建设家具网站的目的及功能定位昌吉州住房和城乡建设局网站
  • 浙江省网站重点学科建设电商交流平台有哪些
  • 兰州网站建设推广报价开源短视频sdk推荐