自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 智能指针的简单实现

对应中文书c++ primer 第五版 600页练习#include <iostream>#include <functional>using namespace std;template<typename T>class test_shared_ptr {public: test_shared_ptr() :i(0), q(0) {} test_shared_ptr(T* (&p)) :i(*p), q(p) {} test_shared_pt

2020-12-26 11:26:03 77

原创 c++类的拷贝,构造,析构函数小练习

对应的是c++primer 第五版P447的练习13.13代码里加入了一些自己的理解,分享另一种思考问题的方法#include <iostream>#include <vector>using namespace std;struct X { X() { cout << "X()" << endl; } X(const X&) { cout << "X(const X&)" << endl; } X&am

2020-11-29 22:35:12 224

原创 标准库小练习(自己动手写单词统计程序)

在一段文字中,统计给定单词的所在行数题目来自于c++primer 第五版 P430 :使用标注库:文本查询程序#include <iostream>#include <unordered_map>#include <fstream>#include <sstream>#include <string>using namespace std;int main(){ ofstream out("C:\\Users\\MLL\\Des

2020-11-26 16:10:52 117

原创 shared_ptr指向的vector在扩容时会改变智能指针的引用计数吗?

vector在扩容时会先对自身存储的元素拷贝后释放原有内存,这个过程会改变指向它的shared_ptr的引用计数吗?答案是不会的,无论这个vector怎么扩容,最终shared_ptr的引用计数都不会改变#include <iostream>#include <memory>#include <vector>using namespace std;//函数f()返回一个shared_ptr<vector<int>>auto f(v

2020-11-23 23:20:21 821

原创 c++vector容器的原理和特性

vector是STL里常见的容器,虽然和数组一样是顺序容器,但是它可以随着元素的插入不断地扩增自己的容量vector扩增容量的机制先看代码代码中的size()返回vector的大小(也就是目前有多少个元素),而capacity()则返回容器的容量(再次扩容前最多可以容纳的元素个数)#include <iostream>#include <vector>using namespace std;int main(){ vector<int> a = { 1,

2020-10-11 13:10:22 1426

原创 函数中的二维数组和二级指针

二维数组和二级指针被指针逼疯了才想出如此歪门邪道去理解它,文章错误之处还请大家私聊或者在评论区告诉我下面函数调用时,二维数组a必须用类型强转才能实现对int** a的参数传递说明二维数组和二级指针依然有明显的区别,我们用打印地址的方法来探究它们的区别(注:二维数组名是个指针)#include <iostream>using namespace std;void func(int **a){ cout <<"传递之后a: "<< a<<endl

2020-10-07 14:08:11 341

原创 initializer_list和函数参数的传递相关思考

initializer_list和函数参数的传递问题今天看c++primer 时看到了列表初始化 initializer_list 文章里的一个函数引起了我深刻的思考//如果想向initializer_list形参中传递一个值的序列,则必须把序列放在一对花括号内://expected和actual是string对象if (expected!=actual) error_msg({"functionX",expected,actual});else error_msg({"functionX",

2020-10-06 12:21:25 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除