
C++
我就是个渴望成长的小菜鸡
如果你觉得我的文章对你有帮助,欢迎点赞和关注;如有异议,欢迎指出。我就是个渴望在学习中成长为一名合格的程序媛的小菜鸡
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
时间戳计算(只适用于特定内容的文件)
命令行输入文件路径#include <iostream>#include <fstream>#include <string>#include <assert.h>#include <vector>using namespace std;void getNUmberOfString(string res, int &number);void splitStringInSpace(string str);void rea原创 2022-01-21 16:04:59 · 174 阅读 · 0 评论 -
Ubuntu开发环境搭建
Ubuntu上在安装任何软件之前先执行:sudo apt update 指令sudo全称是switch user,即切换到root命令下。apt:Ubuntu管理软件的指令。sudo apt update:即将软件更新到最新。sudo apt update安装gccsudo apt install build-essential gdb (gcc、g++ 和gdb都会安装)安装确认:gcc --versiong++ --versiongdb --version安装cmak原创 2021-10-29 19:34:17 · 215 阅读 · 0 评论 -
Linux重要指令讲解
Linux重要指令讲解pwd:打印当前工作目录。ls:列出当前文件夹下所有文件和文件夹的名称。ls [路径]:列出指定路径(可以是相对路径也可以是绝对路径)下的所有文件和文件夹,如:ls ./表示列出当前路径下的文件和文件夹;ls …/ 表示列出父目录下的所有文件和文件夹;以上都是指定的相对路径。ls /home 表示家目录下的所有文件和文件夹,这里就是绝对路径,绝对路径一定是以根目录开头的。ls -lah:-l:list,以详细列表的形式进行展示-a:列出所有文件,包括隐藏文件和文件夹-原创 2021-10-29 10:04:36 · 1175 阅读 · 0 评论 -
c风格字符串
char dog[8]={'b','e','a','u','x',' ','I','I'}; //not a stringchar dog[8]={'b','e','a','u','x',' ','I','\0'}; //a string翻译 2021-01-12 22:58:53 · 202 阅读 · 0 评论 -
Effective C++ 读后笔记六
条款26:尽可能延后变量定义式的出现时间除非在变量要使用的那一刻,否则不要提前定义变量。对于循环来说,当你不在循环外使用变量时,尽量在循环内定义变量。原创 2020-05-12 23:01:36 · 138 阅读 · 0 评论 -
Effective C++ 读后笔记五
条款20:宁以pass-by-reference-to-const替换pass-by-value当需要传递对象作为函数参数时,通常是传递引用,而非传值。原因主要有以下两点:1.传值的过程实际上是拷贝的过程,当类中有多个成员变量时,需要将所有的变量都拷贝一遍,效率比较低,而传递引用,则不存在拷贝,引用是原对象的别名。实际上操作的是同一个对象。2.引用作为参数可以避免切割问题。当一个派生类的对象作为实参传递到一个基类作为形参的函数中时,你的本意是想输出派生类的信息,但是因为传值导致的切割问题,实际输原创 2020-05-11 23:22:49 · 177 阅读 · 0 评论 -
Effective C++ 读书笔记四
条款13:以对象管理资源通常我们在定义一个函数时会出现返回一个指向某一对象指针的情况,这时就需要调用者在进行函数调用时自己管理资源。为了避免忘记释放资源的情况出现,可以考虑将资源依托到智能指针上进行管理。智能指针的优点就在于,他类似于一个对象,在出作用域时会自动调用析构函数。如下实例:class Investment{...};Investment* CreateInvestment(){ ...}void f(){ std::auto_ptr<Investment原创 2020-05-10 22:15:23 · 131 阅读 · 0 评论 -
Effective C++ 读书笔记三
条款8:别让异常逃离析构函数在定义本类时出现的异常,应该在析构函数中捕获或者在析构函数中考虑在出现异常时强制结束程序。如果想要针对异常作出相应,可以考虑将出现异常的代码块放到一个普通函数中。条款9:绝不在构造和析构过程中调用virtual函数由于virtual函数的机制是动态绑定,根据实际的对象确定要调用的是基类还是子类的函数,此时需要知道的是对象已经存在,即构造函数是确定的,所以,构造函数不可以声明为virtual的。同理,析构过程中也不可以调用virtual函数,因为析构后的对象不复存在,所原创 2020-05-10 16:55:02 · 159 阅读 · 0 评论 -
Effective C++ 读书笔记二
条款5:定义好一个空类时,编译器会自动生成无参构造函数、copy构造函数、copy assignment(拷贝赋值)操作符和析构函数程序员自定义的函数的优先级高于编译器自动生成的,当程序员自己实现了上述函数时,编译器就不会生成默认的函数。但是,当编译器生成的默认函数无法满足你的功能时,就需要程序员自己去定义函数了。条款6:当不想使用编译器生成的默认函数时,将这些不想使用的默认函数自己声明为private,并且只声明,不实现如果仅仅声明为private的,且实现了(即使是空实现),类的friend原创 2020-05-08 23:23:46 · 148 阅读 · 0 评论 -
Effective C++ 读书笔记一
条款1:将c++看做是在C的基础上添加了类的特性,再添加了泛型编程和STL库的集合。条款2:少使用#define,换之以const,enum和inline关键字1>当想用#define定义一个变量时,可以考虑用const代替2>当想用#define实现一个函数的功能时,可以考虑将函数在头文件中实现,并加上(或不加)inline关键字,即让函数成为内敛函数,减少了函数调用上的...原创 2020-05-07 22:48:15 · 182 阅读 · 0 评论