社区
C++ 语言
帖子详情
既然C++11有了std::array,为什么还要搞一个std::initializer_list类型?
zerueiru
2016-06-12 10:09:20
std::initializer_list的内部实现也是指向一个匿名的数组,为什么不干脆都只用std::array的C风格数组呢? 感觉用两个不同的概念可以表示的东西是同一个。
为什么const_cast不能直接把一个左值变成非const,非得是指针或者引用?
...全文
349
5
打赏
收藏
既然C++11有了std::array,为什么还要搞一个std::initializer_list类型?
std::initializer_list的内部实现也是指向一个匿名的数组,为什么不干脆都只用std::array的C风格数组呢? 感觉用两个不同的概念可以表示的东西是同一个。 为什么const_cast不能直接把一个左值变成非const,非得是指针或者引用?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fefe82
2016-06-12
打赏
举报
回复
指针和引用也可以是左值。 一个值(左值、右值)经过一个运算符操作,必然会变成另一个值。但两个值可能对应的是同一个对象。(左值、右值是对表达式结果性质的描述,不是对对象的描述)
paschen
版主
2016-06-12
打赏
举报
回复
初始化可以更加方便
http://en.cppreference.com/w/cpp/utility/initializer_list
lunat
2016-06-12
打赏
举报
回复
std::initializer_list是一个轻量级对象,它指向一个临时常量数组,但不保持该数组,对它进行复制也不会产生内容的复制; std::array它保持他所持有的数组(里面可以不是常量),对它进行复制会导致内容的复制。它设计用来代替传统的定长数组(保持高效率,与其它容器提供一致的访问界面,且可以解决数组传递退化成指针的问题)。 std::initializer_list看名字也知道,它设计就是用来做初始化列表的,用来给其它容器做间接层,它的实现是编译器特殊支持的,你自己无法实现同样的功能;std::array就是基于正常的语法,你完全可以实现你自己的同样功能的array。
lm_whales
2016-06-12
打赏
举报
回复
强制转换获得的是一个新值。 被改变的是表达式的结果,不是构成表达式的对象。 是从表达式的值,获得一个跟他关联的另一个值。
lm_whales
2016-06-12
打赏
举报
回复
右值有很多种 其中 字面值 如 1,2,3 等 是纯右值
深入理解
C++11
:
C++11
新特性解析与应用(完整、扫描版)
7. **动态数组(
std
::
array
)**:`
std
::
array
`是
一个
固定大小的数组,提供了更安全的替代原始C风格数组,因为它有自己的大小信息且不允许越界访问。 8. **智能指针(Smart Pointers)**:`
std
::unique_ptr`、`
std
::...
C++11
参考文档
C++11
是C++编程语言的
一个
重要更新,它引入了大量的新特性和改进,极大地提升了C++的现代性、安全性和效率。这份"cppreference.com网站脱机版2017年份"文档包含了
C++11
以及后续的C++14特性,是学习和查阅
C++11
/14...
C++14新标准-中文版.rar
C++14是C++编程语言的
一个
重要更新,它在2014年被ISO标准化组织正式采纳。这个新标准引入了许多新特性、优化和改进,旨在提高代码的效率、可读性和简洁性。让我们深入探讨一下C++14新标准的一些关键知识点。 1. **...
c++11
最新标准
C++11
是C++编程语言的
一个
重要更新,它在2011年被ISO(国际标准化组织)正式采纳为新的标准,因此得名
C++11
。这个标准引入了大量的新特性,旨在提升C++的效率、简洁性和现代性,同时保持其原有的灵活性和面向对象的...
myostream:方便的输出,适用于所有可迭代项目的容器
类型
C ++标准要求:> = C ++ 11 支持的容器或类似容器的
类型
:
std
:: pair
std
:: tuple
std
::
array
std
:: deque
std
:: forward_
list
std
::
initializer
_
list
std
::
list
std
:: vector
std
:: set
std
:: ...
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章