#浅谈# c++中 指针与STL容器的结合

您所在的位置:网站首页 vector存放智能指针 #浅谈# c++中 指针与STL容器的结合

#浅谈# c++中 指针与STL容器的结合

2023-08-09 01:12| 来源: 网络整理| 查看: 265

在python语言中,不可变对象作为函数参数的使用的是值传递,可变对象作为函数参数,相当于C语言的引用传递。 在c++语言中,向STL容器中的添加对象时,使用的是值传递,或者说是深拷贝,这带来的直接问题就是:对STL容器中的对象进行改变,并不会同时到STL容器外的原始对象。 但想要将STL内外的元素同步也是可以实现的,具体方法就是使用指针。

1.定义指针

首先定义一个unordered_map类型的对象map1,其中key为string类型,value为vector类型。

unordered_map map1; 2.向容器中添加指针

定义一个string类型的vector对象v1并存入一个"hello world!"字符串;然后将"str1"字符串作为key,v1的地址作为value,以pair键值对的形式存入map1中(使用&关键字提取对象的地址)。

vector v1; v1.push_back("hello world!"); map1.insert(make_pair("str1", &v1)); 3.操作容器中指针指向的对象

使用find函数和->second关键字提取map1中的指定key的value的指针,其中,第二个->的作用的提取指针指向对象的成员变量和方法。

unordered_map::iterator it = map1.find("str1"); if (it != map1.end()) { it->second->push_back(planslist[j].plan_num); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3