
C++标准库学习
张小染
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2.智能指针之weak_ptr
2.智能指针之weak_ptr 一、当然在某些情况下,shared_ptr有可能造成循环引用,这样就造成了shared_ptr的引用次数一直大于0,也就不可能去释放该指针,也就造成了传说中的内存泄漏。等下,我们想想,我们起始使用智能指针的的目的就是防止内存泄漏,而循环引用又必然造成内存泄漏。说到这里,我们回顾我们这一节的题目weak_ptr,对滴,为了解决该问题,我们的标准库又引入了另外一个智...原创 2018-06-13 21:17:17 · 280 阅读 · 0 评论 -
1. 智能指针之shared_ptr
1. 智能指针之shared_ptr1.简介 shared_ptr( 共享内存指针),shared_ptr是一个共享内存的指针,多个指针可以共同使用同一个对象资源,也就是说多个shared_ptr可以同时“拥有”或者“共享”同一个对象,当最后一个地方使用之后会自动释放相应的内存与资源。shared_ptr与其他的智能指针一样都定义在了<memory>头文件中。2. 定...原创 2018-06-07 21:05:13 · 669 阅读 · 2 评论 -
3.智能指针之unique_ptr
3.智能指针之unique_ptr一、unique_ptr是从aotu_ptr派生而来,用来代替auto_ptr的。通常情况下函数的运行分为以下几个步骤:1. 加载资源2. 进行部分操作3. 释放资源考虑下面这个情况:void fun(){ int *a = new int(1000); //do something delete a;}如果在do something过...原创 2018-06-17 17:17:13 · 1335 阅读 · 0 评论 -
4. 一致性初始化({}初始化)
C++11引入了“一致性初始化”概念,意思是面对任何初始化动作,你可以使用相同语法,也就是 使用大括号,下面这样初始化都是可以的。int values[]{ 1,2,3,4,5,6,7,8,9 };vector<char> vec{'a','b' ,'c' ,'d' ,'e' };map<int, string>m1{ { 1,"a" },{ 2,"b" },{ ...原创 2018-11-11 18:10:24 · 380 阅读 · 0 评论 -
5. Range-based for(c++11)
一般形式:for( decl : coll){ Statement;}可以将vector vec中的各个元素乘3。std::vector<double> vec;...for ( auto& elem : vec ) { elem *= 3;}以下两种情况表示的是同一种操作:for ( decl : coll ){ ...原创 2018-11-11 18:18:33 · 248 阅读 · 0 评论 -
6. 新的字符串常量值
String str = R”delim(values)delim” //str = values 其中 delim是字符序列,最多十六个字符,不能是双引号,反斜杠还有括号原创 2018-11-11 18:19:58 · 175 阅读 · 0 评论