前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ 中文周刊 第135期

C++ 中文周刊 第135期

作者头像
王很水
发布2024-07-30 14:39:11
1010
发布2024-07-30 14:39:11
举报
文章被收录于专栏:C++ 动态新闻推送

RSS https://github.com/wanghenshui/cppweeklynews/releases.atom

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

请提交 issue[2]

感谢 不语 赞助

最近在找工作准备面试题,更新可能有些拖沓,见谅

review request

@AWE 写的一个库https://github.com/HenryAWE/PapilioCharontis

大概是一个增加了控制逻辑的fmt(比如可以根据格式化参数的数值,决定输出的字符串中某个单词是否须为复数形式)

现在还在很初期的阶段,请求大家意见,有空的可以狠狠的批评一下

资讯

标准委员会动态/ide/编译器信息放在这里

编译器信息最新动态推荐关注hellogcc公众号 OSDT Weekly 2023-10-25 第225期

语雀崩了七个小时了

这个和之前gitlab崩溃几天那个问题有点像,数据库下线然后全量回滚数据库耽误太多时间

测试环境没测,多地多中心没做,回滚备份太慢

还有啥角度可以批判批判?

BS tour c++再版

笔者不太推荐哈,BS写书太絮絮叨叨了,现代C++白皮书看了没,那个没看就别看他新书了

除夕不放假

额。。。感觉说啥都不太好

文章

雾里看花:真正意义上的理解C++模板(Template)[3]

评论区倒是值得一看

复杂 C++ 项目堆栈保留以及 ebpf 性能分析[4]

编译要带上 -fno-omit-frame-pointer 方便perf bcc 抓堆栈

一剑破万法:noexcept与C++异常导致的coredump[5]

尽可能加noexcept 帮助定位函数问题

读《C++ Core Guidelines》有感 [6]

看一乐

modern C++真的很烂: variant篇[7]

看一乐

【XMake】02 如何优雅的编写C++代码[8]

学学xmake

C++ 内存问题排查:创建 Zip 压缩包,解压后内容错乱[9]

我直接贴代码吧

代码语言:javascript
复制
zip* archive = zip_open(tmpFile, ZIP_CREATE | ZIP_TRUNCATE, &error);
if (archive == NULL) {
    printf("fail to open %s err %d", tmpFile, error);
    return 1;
}

zip_source* s = NULL;
for (auto item : FileInfos) {
    if (NULL == (s = zip_source_buffer(archive, item.htmltemlate.c_str(), item.htmltemlate.size(), 0)) ||
        zip_file_add(archive, (item.filename + "_temp.xhtml").c_str(), s, ZIP_FL_ENC_UTF_8 | ZIP_FL_OVERWRITE) < 0) {
        zip_source_free(s);
        printf("fail to add info.txt err %s", zip_strerror(archive));
        error = -1;
    }
}

if (zip_close(archive) < 0) {
    printf("fail to close %s ret %d", tmpFile, error);
    return 1;
}

你能看出来问题出在哪里吗buffer archive生命周期问题

看不出来的话,原博客教你手把手gdb定位

为什么C++20是最awesome的网络编程语言[10]

asio结合coroutine演化,有点意思

How do I add a non-copyable, non-movable object to a std::map or std::unordered_map?[11]

简单来说就是

代码语言:javascript
复制
struct weird {
    int value;
    std::mutex mtx;
};

std::map<int, weird> table;

table.insert({ 1, {} }); // nope
table.insert_or_assign(1, weird{}); // nope
table.emplace({ 1, {} }); // nope
table.emplace(1, weird{}); // nope
table.try_emplace(1, weird{}); // nope

mutex不能拷贝,这种怎么在map中构建?placement_construct

代码语言:javascript
复制
table.emplace(std::piecewise_construct,
    std::forward_as_tuple(1),
    std::forward_as_tuple("used to construct weird"));

你学会了吗

另外map的try_emplace 有优化效果,最优场景O1 熟悉一下API

Implementing #embed for C and C++[12]

手把手实现#embed

视频

2023 purecpp大会ppt和视频

ppt在这

http://purecpp.cn/detail?id=2390

视频

https://live.csdn.net/room/csdnlive4/AeyB4tmD

maskray讲的lld优化比较有意思

压轴的coro http案例/代码调优也有点意思

感兴趣的可以看看

其他

  • • P99 CONF 2023 | Adventures in Thread-per-Core Async with Redpanda and Seastar by Travis Downs

redpanda有一些coroutine实践,有点意思

开源项目需要人手

  • • asteria[13] 一个脚本语言,可嵌入,长期找人,希望胖友们帮帮忙,也可以加群384042845和作者对线
  • • Unilang[14] deepin的一个通用编程语言,点子有点意思,也缺人,感兴趣的可以github讨论区或者deepin论坛看一看。这里也挂着长期推荐了
  • • gcc-mcf[15] 懂的都懂
  • • https://gitee.com/okstar-org/ok-edu-desktop 一个IM通信软件,做IM的可以关注,现在正在做全面整合阶段,开始组建商业团队阶段,年底开始融资,你参加了就快发财了,会的快来

新的开源项目

  • • trpc-cpp开源了。腾讯用的挺多的,还是值得一学的,类似brpc,但是调度不同 worksteal有taskflow那种类似的设计

工作招聘

  • • 金山找写qt的,详情点链接 https://app.mokahr.com/m/recommendation-apply/wps/29467?recommendCode=NTAA6lb&code=001hEK0w3Mxvx13gAN1w3Auy1f3hEK0a&state=3#/job/a713bff8-9e6d-433e-b923-4bbcf593284b?from=qrcode&isRecommendation=true
  • • 华为云数据库老东家一直在招人,nosql方向

华为云数据库团队广纳英才,社会招聘火热进行中(华为自有岗!!!)。

年底冲刺,HC开放,只限两周,有兴趣直接联系我,具体产品的华为云NoSQL数据库方向。

这边用上C++20了,技术上非常open。可以加irelandken帮忙推荐

老东家,技术大牛还是有很多的

互动环节

列几个面试题,群里激烈讨论了半天,考考大家

  • • 三个文件 分别是1g 5g 10g,每行存ip,机器限制内存500m 磁盘空间可以理解成无限,找出同时在三个文件中存在的出现次数最多的ip

设计一个算法

其实这个属于比较常规的大数据题

  • • 用一个每次抛出正面向上概率为P的硬币生成等概率01随机变量?

数学题我超,答案可以看这里 https://www.zhihu.com/question/304075115

  • • 考虑一个投掷硬币问题

背景:小P和小H分别选择一个4个硬币组成的序列(正面由U表示,反面由D表示),一枚硬币每次会公正的投掷并记录结果,先出现的序列为获胜者。

问题:给定小P选择的一个序列,请为小H设法给出胜率最大的对应序列,并给出C++/python代码

实例:小P选择 DDDD,小H可以选择UDDD

扩展:将4改为任意有限正整数,你会如何优化你的计算?

引用链接

[1] 手机qq点击进入: https://qm.qq.com/q/6NGizNPyG4 [2] 提交 issue: https://github.com/wanghenshui/cppweeklynews/issues [3] 雾里看花:真正意义上的理解C++模板(Template): https://zhuanlan.zhihu.com/p/655902377 [4] 复杂 C++ 项目堆栈保留以及 ebpf 性能分析: https://selfboot.cn/2023/10/17/c++_frame_pointer/ [5] 一剑破万法:noexcept与C++异常导致的coredump: https://zhuanlan.zhihu.com/p/609434714 [6] 读《C++ Core Guidelines》有感 : https://zhuanlan.zhihu.com/p/662859288 [7] modern C++真的很烂: variant篇: https://zhuanlan.zhihu.com/p/645810896 [8] 【XMake】02 如何优雅的编写C++代码: https://zhuanlan.zhihu.com/p/655452448 [9] C++ 内存问题排查:创建 Zip 压缩包,解压后内容错乱: https://selfboot.cn/2023/10/19/c++_zip_memory_problem/ [10] 为什么C++20是最awesome的网络编程语言: https://zhuanlan.zhihu.com/p/662972177?utm_id=0 [11] How do I add a non-copyable, non-movable object to a std::map or std::unordered_map?: https://devblogs.microsoft.com/oldnewthing/20231023-00/?p=108916 [12] Implementing #embed for C and C++: https://thephd.dev/implementing-embed-c-and-c++ [13] asteria: https://github.com/lhmouse/asteria [14] Unilang: https://github.com/linuxdeepin/unilang [15] gcc-mcf: https://gcc-mcf.lhmouse.com/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CPP每周推送 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • review request
  • 资讯
    • 语雀崩了七个小时了
      • BS tour c++再版
        • 除夕不放假
        • 文章
          • 雾里看花:真正意义上的理解C++模板(Template)[3]
            • 复杂 C++ 项目堆栈保留以及 ebpf 性能分析[4]
              • 一剑破万法:noexcept与C++异常导致的coredump[5]
                • 读《C++ Core Guidelines》有感 [6]
                  • modern C++真的很烂: variant篇[7]
                    • 【XMake】02 如何优雅的编写C++代码[8]
                      • C++ 内存问题排查:创建 Zip 压缩包,解压后内容错乱[9]
                        • 为什么C++20是最awesome的网络编程语言[10]
                          • How do I add a non-copyable, non-movable object to a std::map or std::unordered_map?[11]
                            • Implementing #embed for C and C++[12]
                            • 视频
                              • 2023 purecpp大会ppt和视频
                                • 其他
                                  • 引用链接
                              • 开源项目需要人手
                              • 新的开源项目
                              • 工作招聘
                              • 互动环节
                              相关产品与服务
                              云数据库 MySQL
                              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档