- 主题:大伙来说说自从c++11以来,哪些特性是刚需
但是有了auto, 你绝对不想再去写: for (std::vector<int>::interator it = ....)
【 在 GoGoRoger (GoGoRoger) 的大作中提到: 】
: 啥也不是刚需,没出现时代码不是也写得好好的?
: 发自「今日水木 on Mi Note 3」
--
FROM 120.244.224.*
写 for (int i: vector_of_int) {} 不是更简单。
我还是喜欢把类型写出来。程序员一天打不了多少字,一天写的代码可能还不如随便灌的一篇水贴字数多。没必要为了省几个字母增加记忆负担。
【 在 hyperLee (老李) 的大作中提到: 】
: 但是有了auto, 你绝对不想再去写: for (std::vector<int>::interator it = ....)
--
FROM 121.205.116.*
确实水贴的字数更多。
【 在 hgoldfish 的大作中提到: 】
: 写 for (int i: vector_of_int) {} 不是更简单。
: 我还是喜欢把类型写出来。程序员一天打不了多少字,一天写的代码可能还不如随便灌的一篇水贴字数多。没必要为了省几个字母增加记忆负担。
:
--
FROM 27.26.155.*
我觉得最有用的特性,decltype和变长参数模板
然后就是统一的库。
什么右值引用,大幅度提高性能都是扯淡
--
FROM 120.245.105.*
【 在 hgoldfish 的大作中提到: 】
: 写 for (int i: vector_of_int) {} 不是更简单。
: 我还是喜欢把类型写出来。程序员一天打不了多少字,一天写的代码可能还不如随便灌的一篇水贴字数多。没必要为了省几个字母增加记忆负担。
:
int写出来没问题,很多嵌套了n层的类型就不一样了哈
除了auto,lambda,我可能用的最开心的是 initializer_list 了,或者是花括弧初始化
其他的变长模板参数啥的虽然也有用,但频次很低
--
FROM 111.206.145.*
我觉得tuple还不错,解决了cpp没有多返回值的问题
因为我觉得传出东西应该走return,但是某些函数需要多个返回值,如果这俩返回值有点关系定一个struct也还说过去,没啥关系的东西为了变成返回值硬塞一起对我这种起名字强迫症的人很纠结
【 在 libgcc 的大作中提到: 】
: 感觉tuple是纯粹为了模板炫技弄出来的硬塞进标准库显摆的
: 一来接口不清,二来也没什么特别之处,纯粹为了模板而模板
: pair好歹还在map里用一用
: ...................
--
FROM 61.148.244.92
【 在 hgoldfish 的大作中提到: 】
: 写 for (int i: vector_of_int) {} 不是更简单。
: 我还是喜欢把类型写出来。程序员一天打不了多少字,一天写的代码可能还不如随便灌的一篇水贴字数多。没必要为了省几个字母增加记忆负担。
:
你举的这个例子,int 比 auto 还少一个字,写全当然没问题
平常根本不是这样,拿常用的 nlohmann json 库举个例子
nlohmann::json j = nlohmann::json::parse(R"([1,2,3])");
for (const nlohmann::detail::iteration_proxy_value<nlohmann::detail::iter_impl<nlohmann::json>>& item : j.items()) {
qDebug() << item.value().get<int>();
}
这个你每次也把类型写出来嘛?
而且,说实话,这个还是好的,日常中经常遇到比这个长的;长还好说,有的推导出的类型甚至一下根本写不出来,真要强写,得分析个几分钟的情况
总感觉你是把 c++ 当 Ansi C 写的,不然 auto 这么解决痛点的事情能被你描述成只是为了“为了省几个字母增加记忆负担”
--
修改:hanjiamajia FROM 211.249.40.*
FROM 211.249.40.*
赶快换 Qt 省事。。hoho
QJsonDocument doc = QJsonDocument::parse(...);
for (const QJsonValue &v: doc.array()) {
...
}
如果真的要写这种代码,我可能会 typedef,然后认真地写上类型。
清晰明了可阅读性好比运行效率要重要得多。因为人类思维太不可靠了。代码不清晰容易犯错。
【 在 hanjiamajia (hanjiamajia) 的大作中提到: 】
: 你举的这个例子,int 比 auto 还少一个字,写全当然没问题
: 平常根本不是这样,拿常用的 nlohmann json 库举个例子
: nlohmann::json j = nlohmann::json::parse(R"([1,2,3])");
: ...................
--
修改:hgoldfish FROM 121.205.116.*
FROM 121.205.116.*
哈哈哈哈
【 在 hanjiamajia (hanjiamajia) 的大作中提到: 】
: 你举的这个例子,int 比 auto 还少一个字,写全当然没问题
: 平常根本不是这样,拿常用的 nlohmann json 库举个例子
: nlohmann::json j = nlohmann::json::parse(R"([1,2,3])");
: for (const nlohmann::detail::iteration_proxy_value<nlohmann::detail::iter_impl<nlohmann::json>>& item : j.items()) {
: qDebug() << item.value().get<int>();
: }
: 这个你每次也把类型写出来嘛?
: 而且,说实话,这个还是好的,日常中经常遇到比这个长的;长还好说,有的推导出的类型甚至一下根本写不出来,真要强写,得分析个几分钟的情况
: 总感觉你是把 c++ 当 Ansi C 写的,不然 auto 这么解决痛点的事情能被你描述成只是为了“为了省几个字母增加记忆负担”
--
FROM 114.85.225.*
【 在 hgoldfish 的大作中提到: 】
: 赶快换 Qt 省事。。hoho
: QJsonDocument doc = QJsonDocument::parse(...);
: for (const QJsonValue &v: doc.array()) {
: ...................
可以,虽然我觉得没有必要
另外,最好用 using 替代 typedef , typedef 不可用于模板别名
--
FROM 211.249.40.*