首页 > 其他分享 >删除 vector 中引用指向的元素,会有什么结果?

删除 vector 中引用指向的元素,会有什么结果?

时间:2023-05-07 23:22:36浏览次数:32  
标签:std arr 指向 删除 int 元素 vector

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> arr = {1, 2, 3};
    const int &a = arr[0];
    std::cout << a << '\n';
    arr.erase(arr.begin());
    std::cout << a << '\n';
	return 0;
}

运行上面的代码,输出的结果是

1
2

Q

我们没有通过任何方式修改引用 a 指向的元素,为什么最后输出的结果发生了变化?

A

a 指向 arr 的第一个元素 arr[0] = 1
我们通过 arr.erase(arr.begin()) 移除了第一个元素,现在 arr[0] = 2
这里我们需要注意,aarr[0] 的别名,而不是 1 的别名。arr[0] 发生了变化,所以 a 也随之发生变化。

标签:std,arr,指向,删除,int,元素,vector
From: https://www.cnblogs.com/revc/p/17380424.html

相关文章

  • K8S:分享一次“乌龙问题”(人为导致的无法正常删除命名空间)
    问题背景背景是这样的,我有一套测试用的K8S集群,发现无法正常删除命名空间了,一直处于Terminating状态,强制删除也不行。于是,再次手动创建了一个名为“test-b”的命名空间,同样也是不能正常删除。于是,展开了排查。不过,查到最后,发现是个毫无技术含量的“乌龙问题”。结果不重要,重要的......
  • Git:删除所有 Commit 提交记录
    如果想要删除 Git 项目下的所有 Commit 提交,可以使用以下方法。 创建孤立分支,并切换到该分支:gitcheckout--orphanlatest_branch2.暂存所有文件:gitadd-A3.提交所有更改:gitcommit-am"FirstCommit"4.删除主分支 master:gitbranch-Dmaster5.......
  • Windows下SYSTEM权限文件夹的删除方法
    (不一定对所有情况都能用..。但是目前发现比较简单有效...)以C:/Windows.old文件夹为例,一般来说都无法完全删除,到最后总会提示需要SYSTEM权限。怎么办呢,下载一个VSCode,然后用VSCode打开Windows.old文件夹,便可采用VSCode将该文件夹下的所有内容删除干净...(我也不知道原理,但是属......
  • 删除GitHub上的历史commit
    1.背景由于之前的加水印脚本存在问题,在对同一张图片进行加水印时,会有一定的概率产生不一样md5的图片,在git提交的时候,就认为被修改了,从而被提交的github仓库中,如此反反复复,到现在已经有11个G大小了;今天把水印脚本重写了一下,解决了上述问题,所以准备给之前的垃圾提交清理了,让我的博......
  • MongoDB中缩减Shard集群(删除一个Shard)--删除一个分片
    关键字:MongoDB中缩减Shard集群(删除一个Shard)--删除一个分片对MongoDB的Shard集群来说,添加一个分片很简单,AddShard就可以了。但是缩减集群(删除分片)这种一般很少用到。由于某服务器挂了,所以想送修之前必须把它上面的数据自动迁移到其他Shard上。以下......
  • 01 磁盘分区创建删除及逻辑卷挂载
    磁盘分区删除、创建及逻辑卷挂载磁盘分区查看使用lsblk命令查看当前磁盘分区情况[root@localhost~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTSsda8:00447.1G0disk└─sda18:10447.1G0partsdb8:160......
  • zabbix通过api方式批量创建和删除主机
    zabbix库连接信息,文件名为Conn.pyimportpymysql"""获取后台数据库连接"""defCON():con=pymysql.connect(host='rm-xxx.xxxxx.rds.aliyuncs.com',user='xxx',password='xxxx',db=�......
  • django的web项目中重定向页面时的部分信息传输——以删除含有分页的列表记录为例
    问题:在管理系统界面往往是有分页的,初次编写列表的删除功能时很可能会出现删完之后页面跳转到第一页的问题,或者筛选完之后删除某一项结果删完之后跳转到未筛选页面。与实际分页管理的效果大庭相径。解决思路:1.起初只遇到了分页的情况,解决方法很简单,在删除按钮的href中直接传值,例......
  • ABP CORE+EF 批量删除、修改
    //物理删除()//awaitthis.Repository.GetAll().Where(p=>input.Ids.Contains(p.Id)).BatchDeleteAsync();//逻辑删除,批量修改删除字段awaitthis.Repository.GetAll().Where(p=>input.Ids.Contains(p.Id)).BatchUpdateAsync(p=>newShop......
  • canal数据库数据备份时,不同步删除分区动作。
        场景:我们有一大批业务数据,为减少数据库压力和提高使用效率,需要周期性的清理历史分区数据。但是这些数据并不是代表不要了。需要在另一个地方保存 传统数据库的主从复制功能,主要强调的是可以互为备份,强调高可用和可读写分离。但是在我们这个场景下并不适用......