社区
C++ 语言
帖子详情
vector 下标操作是左值
zyc_0204
2014-08-21 10:53:36
为什么STL标准不重载一个下标操作为右值的版本。 这有什么考虑吗?
这在使用vector常引用时,不能使用下标操作很恼火。
...全文
231
1
打赏
收藏
vector 下标操作是左值
为什么STL标准不重载一个下标操作为右值的版本。 这有什么考虑吗? 这在使用vector常引用时,不能使用下标操作很恼火。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
阿呆_
2014-08-21
打赏
举报
回复
不明白什么意思。 vector的operator []本来就有两个,一个普通reference,一个const reference。普通reference就可以做左值。 const reference可以做右值呀。
vector
对象的
操作
vector
标准库提供了许多类似于string对象的
操作
,下面列出了几种最重要的
vector
操作
. v.empty() 如果v为空,则返回true,否则返回false.v.size() 返回v中元素的个数v.push_back(t) 在v的末尾增加一个值为t的元素.v[n] 返回v中位置为n的元素.v1=v2 把v1的元素替换成v2中元素的副本.v1==v2
左值
、右值,
左值
引用、右值引用、move
文章目录027
左值
和右值问题028
左值
_右值_
左值
引用_右值引用 027
左值
和右值问题 #include<iostream> #include<cstdlib> #include<string> #include <
vector
> using namespace std; int main(void) { int number01 = 10; //每个对象占有一块内存空间 number01 = 22; //
左值
当右值使用, number01 =
vector
迭代器
最后,iter 将指向 ivec 中的最后一个元素,处理完最后一个元素后,iter 再增加 1,就会与 end
操作
的返回值相等,在这种情况下,循环终止。如果 ivec 为空,则 begin 返回的迭代器不指向任何元素,由于没有元素,所以它不能指向任何元素———在这种情况下,从 begin
操作
返回的迭代器与从 end c
操作
返回的迭代器的值相同,因此 for 语句中的测试条件立即失败。迭代器类型定义了一些
操作
来获取迭代器所指向的元素,并允许程序员将迭代器从一个元素移动到另一个元素。
标准库
vector
类型
vector
是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的内存。我们把
vector
称为容器,是因为他可以包含其他对象。 一个容器中的所有对象必须是同一种类型。
vector
是一个类模板。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们可以定义保存string对象的
vector
,或保存int值得
vector
,又或是保存自定义的类类型对象的
vector
。 声明从类模板产生的某种类型的对象,需要提供附加信息,信
C++容器
vector
的
操作
总结
C++ 中 容器的
操作
总结如下:定义空向量: 初始化为一组值: 指定大小并初始化: 插入元素 尾部插入: 任意位置插入: 访问元素 通过
下标
访问: 迭代器访问: 或使用 C++11 及以后版本的范围基础 for 循环: 删除元素 删除尾部元素: 删除特定元素或范围: 大小和容量
操作
获取元素数量: 检查是否为空: 获取最大可能容量: 更改容器大小:
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章