2501C++,现代C++大大提高开发效率

news/2025/1/16 7:43:16/

提升开发效率的一些语法糖:

1.if/switch初化语句

//以前
auto*tmp = parseExpression();
if(tmp!=nullptr){work();
}
//之后if (auto* tmp = parseExpression(); tmp != nullptr) {work();
}

2.结构化绑定

std::tuple<int,string> nextToken(){return {4,"直降"};
}
//以前
int main() {auto token = nextToken();std::cout<<std::get<int>(token)<<","<<std::get<std::string>(token);return 0;
}
//之后
int main() {auto[tokenType,lexeme] = nextToken();std::cout<<tokenType<<","<<lexeme;return 0;
}

3.std::string_view

//以前
void isKeyword(const std::string & lit){work();
}
//之后
void isKeyword(std::string_view lit){work();
}

4.内联变量

//A.h inline int k = 10; //不需要为简单变量分一个.cpp写定义了

5.折叠式和模板λ

//以前
if(x=='x'||x=='X'||x=='e'||x=='E'||x=='.'){work();
}
//之后
static auto anyone = [](auto&& k, auto&&... args) ->bool { return ((args == k) || ...); };
if(anyone(x,'x','X','e','E','.')){work();
}

6.继承构造器

struct Base{Base(int a,char b,double c, std::string d,float f):a(a),b(b),c(c),d(std::move(d)),f(f){}int a;char b;double c;std::string d;float f;
};
//以前
struct Derive : public Base{Derive(int a,char b,double c, std::string d,float f):Base(a,b,c,d,f){}
};
//之后
struct Derive : public Base{using Base::Base;
};

7.+λ转换

λ使用一元+式可按普通函数指针转换它

//以前
int8_t (*CreateLonglink)(const std::string& name, const std::string& host,const std::vector<uint16_t> ports, const std::string& debugip)= +[](const std::string& name, const std::string& host, const std::vector<uint16_t> ports, const std::string& debugip)->int8_t{...return 0;
};
//之后
auto CreateLonglink= +[](const std::string& name, const std::string& host, const std::vector<uint16_t> ports, const std::string& debugip)->int8_t{...return 0;
};

http://www.ppmy.cn/news/1563548.html

相关文章

【机器学习:十四、TensorFlow与PyTorch的对比分析】

1. 发展背景与社区支持 1.1 TensorFlow的背景与发展 TensorFlow是Google于2015年发布的开源深度学习框架&#xff0c;基于其前身DistBelief系统。作为Google大规模深度学习研究成果的延续&#xff0c;TensorFlow从一开始就定位为生产级框架&#xff0c;强调跨平台部署能力和性…

Leetcode2270:分割数组的方案数

题目描述&#xff1a; 给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真&#xff0c;那么 nums 在下标 i 处有一个 合法的分割 &#xff1a; 前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元素&#xff0c;也就是…

【Leetcode 每日一题】3065. 超过阈值的最少操作数 I

问题背景 给你一个下标从 0 0 0 开始的整数数组 n u m s nums nums 和一个整数 k k k。 一次操作中&#xff0c;你可以删除 n u m s nums nums 中的最小元素。 你需要使数组中的所有元素都大于或等于 k k k&#xff0c;请你返回需要的 最少 操作次数。 数据约束 1 ≤ n …

华为数通HCIE备考经验分享

在分享我的考试心得前我先介绍一下我自己&#xff0c;我叫郑同学&#xff0c;22岁&#xff0c;就读于深圳信息职业技术学院移动通信技术专业&#xff0c;在2024年的9月&#xff0c;我成功获得了HCIE-Datacom证书。 考证契机 我的备考之旅始于去年2023年的华为ICT大赛。在这场…

k8s基础(6)—Kubernetes-存储

Kubernetes-存储概述 k8s的持久券简介 Kubernetes的持久卷&#xff08;PersistentVolume, PV&#xff09;和持久卷声明&#xff08;PersistentVolumeClaim, PVC&#xff09;为用户在Kubernetes中使用卷提供了抽象。PV是集群中的一块存储&#xff0c;PVC是对这部分存储的请求。…

国产游戏行业的挑战与机遇:IT技术如何引领未来

近年来&#xff0c;国产游戏行业如同一颗璀璨的新星&#xff0c;在全球游戏市场中冉冉升起。从早期的模仿与跟随&#xff0c;到如今的多领域技术创新&#xff0c;中国游戏开发者展现出了非凡的实力与潜力。然而&#xff0c;面对全球市场的激烈竞争&#xff0c;国产游戏技术仍面…

Linux下部署Redis(Docker部署超详细)

docker search redisdocker pull redis:6.2.6 提前在服务器建立 /data/redis 文件夹&#xff0c;touch 文件redis.conf&#xff0c;也可以上面的直接复制 然后去github官网去复制对应版本的conf文件: redis/redis.conf at 6.2.6 redis/redis GitHub 得到conf文件后&#xf…

微信小程序:中途退出原页面,再次进入无法回到退出时的位置

相信很多微信小程序的开发者都会碰到这样的问题&#xff0c;那今天我们就来详细的看下如何解决 一、使用 scroll-view 组件保存滚动位置&#xff1a; 在 wxml 文件中&#xff0c;使用 scroll-view 组件包裹需要滚动的内容。在 data 中定义一个变量来存储 scroll-view 的 scro…