前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ 动态新闻推送 第2期

C++ 动态新闻推送 第2期

作者头像
王很水
发布2021-08-31 17:43:50
4090
发布2021-08-31 17:43:50
举报

C++ 动态新闻推送 第2期

reddit/hackernews/lobsters/meetingcpp摘抄一些c++动态。

每周更新

周刊项目地址 github,在线地址

discord讨论群组 |知乎专栏

欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue


资讯

编译器信息最新动态推荐关注hellogcc公众号

本周周报github直达

llvm weekly

http://llvmweekly.org/issue/374

文章

最近有一篇文章,介绍GTA 5 online为什么那么慢,以及解决办法,详情见这里 ,主要原因 1 sscanf每次读都会检查长度, 对于大文件性能太差 2 数据用hashmap存而不是if判断

作者反思自己的库用到了sscanf,会不会遇到类似的问题?

作者的场景是解析STL格式的文件,如果是大文件,也会很慢,最终使用strtof替换sscanf,解决了问题,这里也有个问答用strtok替换sscanf

还有个14年的bug单

结论,sscanf的性能指标文档没给,要注意这个函数有很大问题,尽量用替换方案

emplace_back接受的是右值,如果为了省掉拷贝,尽量传右值,无脑替换是没有意义的

介绍range的adaptor和factor。range还是比较好学的

一个简单例子

代码语言:javascript
复制
#include <ranges>
#include <fmt/format.h>
#include <fmt/ranges.h>

int main() {
    using namespace std;

    auto squares_under_200 =
        views::iota(0)
        | views::transform([](int i){ return i*i;})
        | views::take_while([](int i){ return i < 200; });

    // {0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196}
    fmt::print("squares under 200: {}\n", squares_under_200);
}

视频

理解成constexpr严格版本,只能编译期计算。使用场景,hash 计算,不泄漏符号


看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持!

本文永久链接

代码语言:txt
复制
     This site is open source. [Improve this page](https://github.com/wanghenshui/cppweeklynews/edit/dev/posts/002.md).
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C++ 动态新闻推送 第2期
    • 资讯
      • 编译器信息最新动态推荐关注hellogcc公众号
      • llvm weekly
    • 文章
      • 视频
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档