首页 > 其他分享 >变量语法强化

变量语法强化

时间:2023-06-24 22:33:50浏览次数:30  
标签:std 初始化 变量 int list C++ 语法 强化 itr

声明强化

在C++17之后,if语句可以像for循环语句一样,在括号里声明一个变量了。

if (int x = 5; x < 10) { x += 1; } // 必然会执行

初始化强化

C++11引入了初始化列表这一概念,在C++11之前,普通数组,非常简单的类,都可以使用{}来初始化,而一般的类又要用其他的方式初始化,各种各样的初始化非常混乱。
C++11引入一个std::initializer_list的类型,为初始化提供了统一的形式。

class Test 
{
	std::vector<int> data;
	Test(std::initializer_list<int> list) 
	{
		for (auto itr = list.begin(); itr != list.end(); ++itr)
			data.push_back(*itr);
	}
};

int main()
{
	int arr[3] = {1, 2, 3};
	std::vector<int> vec = {1, 2, 3};
	Test test{1, 2, 3};
}

结构化绑定

这个语法很像Rust的模式匹配,就是用来从复杂的容器或者类型里,解构出我们想要的类型。

std::tuple<int, double, std::string> f() { return {1, 2.3, "456"}; }

int main()
{
	auto [x, y, z] = f(); // 直接将元组中的三个成员解构出来
	std::cout << x << ' ' << y << ' ' << z << endl;
	return 0;
}

标签:std,初始化,变量,int,list,C++,语法,强化,itr
From: https://www.cnblogs.com/st0rmKR/p/17501805.html

相关文章

  • python入门(三):变量和数据类型
    变量和数据类型指南原文|大纲|首页在Python中,变量用于存储数据,并且每个变量都有一个特定的数据类型。了解变量和数据类型是学习Python编程的基础。变量变量是用来存储数据的容器。在Python中,你可以通过给变量赋值来创建一个变量。变量的命名规则如下:变量名只能包含字......
  • go编程基础--类型与变量
    引用:第3课:类型与变量?|课程列表|《Go编程基础(视频)》|Go技术论坛(learnku.com)1.go编排组织结构: 2.类型: rune表明用于unicode字符操作 3.默认值:值类型与引用类型 引用类型的默认值是nil ......
  • 在 Python 中,类型属于对象,变量是没有类型的
    在Python中,类型属于对象,变量是没有类型的:━━━━━━━━━━━━━━━━━━━━━━━━━a=[1,2,3]a="w3cschool"以上代码中,[1,2,3]是list类型,"w3cschool"是string类型,而变量a是没有类型,她仅仅是一个对象的引用(一个指针),可以是list类型对象,也可以指向是stri......
  • 11月新书-《强化学习:算法与理论》分享
        分享一本由AlekhAgarwal、NanJiang和ShamM.Kakade编写的新书,《强化学习:算法与理论》。本书11月最新release出来的讲解强化学习的书籍,目前还在持续更新中,最新版本刚刚放出来,分享给大家。     与以往动辄几百页的强化学习书籍相比,本书比较精悍,目前只有80多页,内容比......
  • 强化学习从基础到进阶-常见问题和面试必知必答[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛
    强化学习从基础到进阶-常见问题和面试必知必答[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战1.核心词汇概率函数和奖励函数:概率函数定量地表达状态转移的概率,其可以表现环境的随机性。但是实际上,我们经常处于一个未知的环境中,即概率函数和奖励......
  • 强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差
    强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战策略最简单的表示是查找表(look-uptable),即表格型策略(tabularpolicy)。使用查找表的强化学习方法称为表格型方法(tabularmethod),如蒙特卡洛、Q学习和Sarsa。本章通过最......
  • 强化学习从基础到进阶-常见问题和面试必知必答[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛
    强化学习从基础到进阶-常见问题和面试必知必答[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战1.核心词汇概率函数和奖励函数:概率函数定量地表达状态转移的概率,其可以表现环境的随机性。但是实际上,我们经常处于一个未知的环境中,即概率函数和奖励......
  • Kotlin 语法糖(对象不为空返回自身,为空返回其他)
    原文地址:Kotlin语法糖(对象不为空返回自身,为空返回其他)-Stars-One的杂货小窝开发中,经常会有这样逻辑:判断对象如果不为空,则取对象本身;为空,则得到其他对象;然后每次写个if还是有些啰嗦,可以使用kotlin的语法糖可空对象使用?:如果是可空对象,可以使用?:来实现原......
  • js:highlight.js实现代码的语法高亮
    highlight.jsSyntaxhighlightingfortheWeb译文:highlight.js为Web突出显示语法文档https://highlightjs.org/使用方式1、方式一:cdn<linkrel="stylesheet"href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/atom-one-da......
  • Emmet语法生成标签-笔记
    HTML部分 CSS部分如果想要打出text-align:center,可以直接打tac(text-align:center每个单词的首字母)然后按一个tab,即可快速生成text-align:center;如果想要打出width:100px,可以直接打w100,然后按一个tab,即可快速生成width:100px。......