变量语法强化
声明强化
在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;
}
作者:st0rmKR
出处:https://www.cnblogs.com/st0rmKR/p/17501805.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具