shared_ptr:会记录有多少个shared_ptr共同指向一个对象,一旦某个对象的引用计数变为0,这个对象会被自动删除
make_shared:创建管理新对象的共享指针:make_shared需指定类型(’<>’中)及参数(’()’中),传递的参数必须与指定的类型的构造函数匹配
template<class T,class... Args> shared_ptr<T> make_shared(Args&&... ards); template<class T> shared_ptr<T> make_shared(std::size_t N);
unique_ptr:持有对对象的独有权,两个unique_ptr不能只想一个对象,不能进行复制只能进行移动操作
std::unique_ptr<int> p1(new int(5)); std::unique_ptr<int> p2 = p1;//错误 std::unique_ptr<int> p3 = std::move(p1); p3.reset();//释放内存 p1.reset();//无效
map:键-值
std::map<char,int> mymap; mymap.insert(std::pair<char,int>('a',100)); mymap.insert(std::pair<char,int>('z',200)); std::map<char,int>::iterator it = mymap.begin(); mymap.insert(it,std::pair<char,int>('b',300)); std::map<char,int> anothermap; anothermap.insert(mymap.begin(),mymap.find('c'));
erase
std::map<char,int> mymap; std::map<char,int>::iterator it; it = mymap.find('b'); mymap.erase(it);//the first version mymap.erase('c');//the second version it = mymap.find('e'); mymap.erase(it, mymap.end());//the third version
smart_ptr
猜你喜欢
转载自blog.csdn.net/qq_34121068/article/details/78499640
今日推荐
周排行