#浅谈# c++中 指针与STL容器的结合 |
您所在的位置:网站首页 › vector存放智能指针 › #浅谈# c++中 指针与STL容器的结合 |
在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 |