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

探索那些现代C++语法糖

本文来聊聊现代C++的一些语法糖。

1.Auto

auto x = 10; // 推导为 int
auto y = 3.14; // 推导为 double

2.范围-based for 循环

std::vector<int> v = {1, 2, 3, 4, 5};
for (auto val : v) {std::cout << val << " ";
}

3.nullptr

int* ptr = nullptr; // 更安全

4.override 和 final

class Base {virtual void foo() { }
};class Derived : public Base {void foo() override { }  // 确保重写void bar() final { }     // 不能再被重写
};

5.C++11引入了Lambda函数,可以在函数内部直接定义匿名函数。

auto add = [](int a, int b) { return a + b; };
std::cout << add(3, 4);  // 输出 7

6.decltype

int x = 5;
decltype(x) y = 10;  // y的类型为int

7.右值引用与移动语义

void foo(std::vector<int>&& v) {std::vector<int> v2 = std::move(v);  // 移动v的资源
}

8.范围for循环与std::initializer_list

for (auto&& elem : {1, 2, 3}) {std::cout << elem << " ";
}
http://www.lryc.cn/news/482616.html

相关文章:

  • 【LeetCode】【算法】33. 搜索旋转排序数组
  • Python小游戏25——黄金矿工
  • WPF中Prism框架中 IContainerExtension 和 IRegionManager的作用
  • C++实现用户分组--学习
  • 鸿蒙华为商城APP案例
  • 回首遥望-C++内存对齐的思考
  • 力扣 LeetCode 704. 二分查找(Day1:数组)
  • 【Mode Management】AUTOSAR架构下唤醒源检测函数EcuM_CheckWakeup详解
  • Zabbix基础信息概述
  • SpringBoot(十二)SpringBoot配置redis
  • Pycharm安装
  • OpenAI大改下代大模型方向,scaling law撞墙?AI社区炸锅了
  • 技术整合与生态构建:Lyft与Mobileye引领自动驾驶新纪元
  • 利用huffman树实现对文件A先编码后解码
  • 第三十九章 基于VueCli自定义创建项目
  • 网页web无插件播放器EasyPlayer.js点播播放器遇到视频地址播放不了的现象及措施
  • LLaMA-Factory学习笔记(1)——采用LORA对大模型进行SFT并采用vLLM部署的全流程
  • PHP和Python脚本的性能监测方案
  • C语言实现数据结构之堆
  • 战略共赢 软硬兼备|云途半导体与知从科技达成战略合作
  • python:用 sklearn 构建 K-Means 聚类模型
  • elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案
  • Oracle 聚集因子factor clustering
  • 【大数据学习 | kafka高级部分】kafka的快速读写
  • 云技术基础
  • 字节序(Byte Order)
  • 融云:社交泛娱乐出海机会尚存,跨境电商异军突起
  • django博客项目实现站内搜索功能
  • 蓝桥杯c++算法学习【1】之枚举与模拟(卡片、回文日期、赢球票、既约分数:::非常典型的比刷例题!!!)
  • Android 延时操作的常用方法