特别放送 | 和你聊聊现代C++里的“特殊容器”
该思维导图由 AI 生成,仅供参考
一个好消息
- 深入了解
- 翻译
- 解释
- 总结
现代C++中的特殊容器optional和variant是本文的重点内容。optional是一种轻量级的概念,用于表示函数返回的可能无效值,它可以近似看作只能容纳一个元素的特殊容器,有两种状态,“空”和“非空”,分别对应无效和有效。optional对象可以通过has_value()判断是否有效,通过value()获取值的引用,或者通过value_or()返回给定的替代值。此外,optional还可以像指针一样进行操作,如*/->访问内部的值,显式转换为bool值,或者用reset()清空内容。另外,optional也可以用工厂函数make_optional()来创建。文章还介绍了optional的使用场景和注意事项。variant是另一种特殊容器,可以容纳多种类型的值,但只能持有其中一种值。它提供了一种更加灵活的数据结构,适用于需要多种类型值的场景。文章还提到了C++标准的升级和对应的示例代码更新,以及作者对图书内容的新增和完善。整体来看,本文通过介绍特殊容器optional和variant,展示了现代C++的一些新特性和用法,对于C++开发者来说具有一定的参考价值。文章还介绍了optional和variant的使用场景和注意事项,以及C++标准的升级和对应的示例代码更新。文章还提到了作者对图书内容的新增和完善。整体来看,本文通过介绍特殊容器optional和variant,展示了现代C++的一些新特性和用法,对于C++开发者来说具有一定的参考价值。
《罗剑锋的 C++ 实战笔记》,新⼈⾸单¥59
全部留言(8)
- 最新
- 精选
- 嵇斌老程序员就是靠谱,又补了一篇。Modern C++的学习路上又多了本好书。和optional和variant一并,个人觉得还有个很有用的就是std::any。
作者回复: 是的,本来想写any的,但篇幅太长了,只好砍掉,想要了解的同学可以看纸质书。
2021-11-0823 - 九三罗老师不在360了 啊。奔着罗老师来了360。我说咋没在推推上搜到您😄
作者回复: 抱歉啊,离开一年多了,没及时更新状态。
2021-11-052 - JosephC++语言的发展与Rust很多内在逻辑非常相似,这两个容器类Rust中很容易使用,或者说就是内在特性,说明较低层语言都会有相似的思考。
作者回复: 还没开始了解rust,看来是英雄所见略同。
2021-11-042 - 白花风信子老师留言的回复频率好高哇,几乎有问必答!点赞点赞点赞!
作者回复: 必须的,让大家学起来有动力。
2021-12-141 - Stephen爱了爱了
作者回复: thanks
2021-11-041 - robonix老师,为啥要用std::visit而不直接写成visit(v)呢
作者回复: 用std表示强调它在标准库里,是一个习惯,看起来更友好一些。
2022-08-29归属地:上海 - dyun感觉modern c++和其他语言rust JAVA go相比可能就缺一个好用的依赖管理工具了,类似cargo gomod,也看到有一些类似工具,可官方没一个统一,这块老师有什么经验分享么,毕竟每个依赖自己去找也仅仅是个体力活
作者回复: 这个目前还没有统一的解决方案,标准委员会也正在努力,但短期来看还是要靠自己去找,比较麻烦。
2021-12-27 - lunar太值了,竟然还有更新🤭
作者回复: 有机会有时间就会写一点。
2021-11-04