Linux find命令可用于搜索文件和目录并对其执行后续操作。...如果您使用该find命令递归搜索某些文件,然后将结果通过管道传递给该grep命令,那么您实际上将解析文件路径/名称,而不是它们的内容。...本文将带大家简短的了解如何通过名称grep及其内容递归查找某些单词或模式的文件。...在 Linux 中按名称和 Grep 内容查找文件 find按名称及其内容对文件使用grep这些命令,如下所示: $ find -type f -name '' -exec
C++关键字 2. 命名空间 变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。...5.1 函数重载概念 函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题...——找调用函数的定义地址,链接对应上,合并到一起 生成a.out可执行程序 在链接阶段,编译器看到test.o调用了哪些函数,就会去f.o的符号表中找对应函数的地址,然后链接在一起,那么要怎么去找呢?...C++和C语言采用了不同的名字修饰,就会用不同的名字去找 我们发现名字由_Z+函数名长度+函数名首字母+函数按顺序参数首字母,因此支持函数重载(名字不一样,找的对象就不一样)C: 这里我们发现C语言则是直接用函数名作为地址查找对象...汇编指令完全一样,也印证了底层是一样的 那引用和指针的不同点是什么呢?
在介绍命令的同时,把相关的一些Linux知识也进行了扩展,比如在讲解文件的权限命令时,介绍了文件详细信息中各个位的含义,通过权限掩码怎么求8进制数字权限,在比如在讲解建立软硬链接命令的同时,对软硬链接的本质和区别进行了分析等等..../ ,说这些的目的是为了告诉大家,我们在写目录的时候会在后面加一个 / 来表示这是目录,大家不要写了这么多命令还不知道命令中的 / 是什么意思。...在Linux文件系统中,存放在磁盘中的文件都会有一个索引节点号(inode index),硬链接就是多个文件名对应同一个索引节点,硬链接就是指向一个磁盘文件的有效路径名,硬链接文件和源文件是同一个文件。...硬链接不会建立新的inode节点,和它源文件是同一个文件,只是将链接计数加1,所以硬链接不可以跨文件系统,可以把硬链接理解为C++中的引用,如果我们修改了源文件,那么硬链接的内容也会相应修改,软链接就是源文件的别名而已...五、查找及检索相关命令 (1)find查找 ① 按名称查找 -name 选项,比如查找所有C文件,可以用 * 适配名称。
2.2 命名空间 在C/C++中,变量、函数和类等都是大量存在的,而这些变量、函数和类的名称都将存在于全局作用域中,可能会导致很多冲突。...使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。 #include //这一行是什么意思呢?...using namespace std; 相信很多初学者和我一样,一开始都没在意过这一行是什么意思,接下来就让我们一起学习叭! //这一行是什么意思呢?...·cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含头文件中。 ·> 是流提取运算符。...·缺省参数不能在函数声明和定义中同时出现。
+就提供了解决方案 1.2命名空间 想必学过c的大家第一次接触c++看到: using namespace std; 都会想这是什么??...1.2.2命名空间的使用 双冒号 :: 在 C++ 中是作用域解析运算符,它用于指定特定范围内的命名空间或类的成员。...<< endl; return 0; } 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含头文件以及按命名空间的使用方法使用std。.../C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接 链接器看到Test.o调用某个函数,但是没有函数的地址,就会到Func.o的符号表中找函数的地址,然后链接到一起。...这里每个编译器都有自己的函数名修饰规则 c语言链接函数地址时(找函数)是靠函数名,所以不允许重名函数 c++中编译器需要为每个函数生成一个唯一的标识符来标记函数的地址。
根据我们所学过的顺序表,我们可以很容易想到内部扩容机制是什么样子: 检查 size 是否 等于 capacity 如果相等 扩容 否则直接插入尾部。...同样也可以使用基于范围的for循环 for(auto it : s1){ } 即可完成遍历操作; 1.3 string类对象的修改操作 来给一波函数: 函数名称 功能说明 push_back 在字符串后尾插字符...c,返回该字符在字符串中的位置 rfind 从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置 substr 在str中从pos位置开始,截取n个字符,然后将其返回 这里面其实有许多函数重载...2 实践解决问题: 家人们,上链接!!!! 1859 ....然后这道题还要求我们完成排序,所以直接使用sort按要求排序即可。 最后删除结尾的数字,重新插入到s中即可。
namespace +命名空间的名字 { // 命名空间中可以定义变量 / 函数 / 类型 //...... ; } 这是什么意思呢?...在使用时,会反反复复的去写域作用限定符,所以为了避免重复,c++就新出现 using namespace std;什么意思呢??...---- 三、C++的输入和输出 1.使用 cout 标准输出对象 ( 控制台 )和 cin 标准输入对象 ( 键盘 )时,必须 包含 头文件 以及按命名空间使用方法使用...缺省参数不能在函数声明和定义中同时出现 在 .h中,void Func(int a=10) ; 在.cpp中,void Func(int a=100) {;} 若出现声明和定义中都有...inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址 了,链接就会找不到。 只要加了inline内联,就不会生成符号表。
在现代计算机、博弈论、核武器和生化武器等众多领域内有杰出建树的最伟大的科学全才之一,被后人称为“计算机之父”和“博弈论之父”。...指令和数据以同等地位存于存储器,可按地址顺序访问。 指令和数据用二进制表示。 指令由操作码和地址码组成。 存储程序,程序在计算机中顺序存放。 以运算器为中心。...A、多指令流单数据流 B、按地址访问并顺序执行指令 C、堆栈操作 D、存储器按内容选择地址 现代计算机组织结构是以( )为中心,其基本结构遵循冯•诺依曼思想。...A、计算机由运算器、控制器、存储器和输入输出设备组成 B、程序由指令和数据构成,存放在存储器中 C、指令由操作码和地址码两部分组成 D、指令按地址访问,所有数据在指令中直接给出 以下关于冯•...诺依曼计算机工作方式的叙述中,错误的是什么 。
前言 函数重载概念 函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题...C++通过名字查找、名字修饰、解析和链接这几个步骤,实现了函数重载的功能。名字修饰产生唯一内部名称,是支持重载的关键。但在程序运行时,仍然使用原来的外部函数名称调用,这是函数重载的一个重要特点。...这样就可以区分函数重载、重定义等情况,生成唯一的内部名称。链接器根据这些内部名称进行链接。但程序在调用时仍然使用原外部未修饰的名称。...所以,当编译器根据内部名称的不同,就可以将他们区分开来。 当然,更细化的理解,应该是这样的:在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。...采用C++编译器编译后结果 结论:在linux下,采用g++编译完成后,函数名字的修饰发生改变,编译器将函数参数类型信息添加到修改后的名字中。
使用结构时,注意命名空间名称和作用限定符加在struct后面。注意:同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。...C++输入&输出 说明: 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含头文件 以及按命名空间使用方法使用std。...cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含头文件中。 .>是流提取运算符。...:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型 不同的问题。...举例:【当前a.cpp中调用了b.cpp中定义的Add函数时】,编译后链接前,a.o的目标 文件中没有Add的函数地址,因为Add是在b.cpp中定义的,所以Add的地址在b.o中。
例如,当考虑的两个条件都满足时,在 C 或 C++ 中表示为 “&&”运算符的逻辑 AND将返回 true。否则返回false。因此,当 a 和 b 都为真(即非零)时, a && b 返回真。...例如,在 C 或 C++ 中表示为 & 运算符的按位 AND将两个数字作为操作数,并对两个数字的每一位执行 AND。仅当两个位都为 1 时,AND 的结果才为 1。...例子: \ (a *= b) 可以写成 (a = a * b) 如果存储在 a 中的初始值为 5。则 (a *= 6) = 30。 “/=” :此运算符是 '/' 和 '=' 运算符的组合。...逗号运算符在所有 C 运算符中的优先级最低。逗号充当运算符和分隔符。要详细了解逗号,请访问此链接。 条件运算符:条件运算符的形式为Expression1 ? 表达式2:表达式3。...要详细了解条件运算符,请访问此链接。 运算符优先级图表 下表描述了 C/C++ 中运算符的优先顺序和结合性。运算符的优先级从上到下递减。
答案:B A.多指令流单数据流 B.按地址访问并顺序执行指令 C.堆栈操作 D.存储器按内部选择地址 冯诺依曼体系结构的特点是: (1)计算机处理的数据和指令一律用二进制数表示 (2)顺序执行程序:计算机运行过程中...,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行程序。...19、一段C++代码的运行结果 20、面向链接的传输协议是? 答案:TCP(传输控制协议) 不定项选择题 1、ArrayList和LinkedList的区别是什么?...答案:完全二叉树 5、linux中硬链接的作用是为了什么? 答案:硬链接是指通过索引节点来进行链接。...在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号(Inode Index)或者Inode,它是文件或者目录在一个文件系统中的唯一标识,文件的实际数据放置在数据区域
3.4 g++ gcc不能用来编译c++代码,我们创建一个test.cc,.cc表示是c++代码,但是用gcc编译会报错 所以我们就可以用g++来编译c++文件 g++的选项和gcc的选项一模一样,所以也可以带上选项...24行,结果test.i中多出800多行,那多出来的这么多是什么呢?...,才可以执行 关于链接,我们有三个问题: 是什么?...链接的过程是我们的程序和库结合的过程 我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf...链接时,两种链接方式: 动态链接 静态链接 动态链接 动态库和动态链接的优缺点 不能丢失 节省资源 静态链接 静态库和静态链接的优缺点 一旦形成,和库无关 浪费资源 C动态库,是默认提供的 gcc默认形成的可执行程序
MinGW-w64 - for 32 and 64 bit Windows 选最新版本中的x86_64-posix-seh 安装 解压压缩包 将目录中的bin添加到环境变量 验证 在cmd中输入命令...Lf等 ], // 编译的命令,其实相当于VSC帮你在终端中输了这些东西 "type": "process", // process是把预定义变量和转义解析后直接全部传给...具体参见VSC的文档,即使设为never,手动点进去还是可以看到 "focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译C/C+...,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,对于C/C++可认为此处只能是cppdbg,由cpptools提供;不同编程语言不同...Code Runner的命令行和某些选项可以根据自己的需要在此处修改,想自定义或者想知道是什么意思还是参见此扩展的文档和百度gcc使用教程。
命令可以清除缓存中老旧的头文件和软件包 yum clean all 命令可以清除缓存中老旧的头文件和软件包 yum -y upgrade 只升级所有包,不升级软件和系统内核,软件和内核保持原样 二、Linux...hjkl 选中区域 按下 d 即可 我们在进行选中区域的时候有一个小技巧,可以使用命令模式中的 n + shift + g 快速选中需要的区域。...其中 gcc 是编译 C语言 的编译器,而 g++ 可以编译 C语言 和 C++ . 2、动静态库的理解 我们上面的 C程序 中,并没有定义 “printf” 的函数实现,且在预编译中包含的 “stdio.h...其后缀名一般为 .a 其中,静态库是 C/C++ 或者其他第三方提供的所有方法的集合,被所有程序以拷贝的方式,将需要的代码,拷贝到自己的可执行程序中; 静态链接的优点:无视库,可以独立运行; 静态链接的缺点...,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。
实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识, 可以发现C++头文件的后缀中不含.h,这是与C不同的地方: 早期标准库将所有功能在全局域中实现...,声明在.h后缀的头文件中,使用时只需包含对应 头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h...概念 函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型 不同的问题...+支持函数重载的原理--名字修饰 在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。...实际项目通常是由多个头文件和多个源文件构成,假设当前a.cpp中调用了b.cpp中定义的Add函数时,编译后链接前,a.o的目标文件中没有Add的函数地址,因为Add是在b.cpp中定义的,所以Add的地址在
对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。...题解文章:蓝桥杯-2019第十届蓝桥杯B组C++迷宫 试题F: 特别数的和 小明对数位中含有2、0、1、9 的数字很感兴趣(不包括前导0),在1 到 40 中这样的数包括1、2、9、10 至32、39...请问,在1 到n 中,所有这样的数的和是多少?...题解文章:蓝桥杯-2019第十届蓝桥杯B组C++特别数的和 试题G: 完全二叉树的权值 给定一棵包含N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是A1, A2,……...题解文章:蓝桥杯-2019第十届蓝桥杯B组C++后缀表达式 试题J: 灵能传输 在游戏《星际争霸II》中,高阶圣堂武士作为星灵的重要AOE 单位,在 游戏的中后期发挥着重要的作用,其技能”灵能风暴“可以消耗大量的灵能对
这正是因为链接器(链接器其实 是ld,gcc调用了它)在foo.o中找到了main.o中需要的foo的定义,并且在main.o中找到了main的定义。...这里还牵扯到一个问题,那就是c是很纯朴的语言,c的函数在文本文件中是什么名字,那么编译出来在目标文件(一般是.o文件)中相应的那个函数还是那个名字(不会像c++一样为了重载在函数名前后加一大堆区分符)。...比如用nm查看main.o和foo.o [zhxia@ess ~]$ nm main.o U FOO 00000000 T main U表示在main.o中符号foo是未定义的,需要从外部链接进来...gcc总是会有很多默认链接的库和链接选项,这其中包括c的标准库,而printf就在c标准库中。加上-v选项就可以看出来,gcc在编译和链接时 到底做了哪些事。...就像c++要用c库,也需要在声明这个库中的函数时使用extern “C”,使c++编译器在编译这个函数时生成的符号名是C风格而不是C++风格。
gcc / g++ gcc是GCC中的GNU C Compiler(C 编译器) g++是GCC中的GNU C++ Compiler(C++编译器) 编译的四个阶段 在具体的编译过程中,主要分为四个阶段...将函数库中相应的代码组合到目标文件中,汇编文件和系统库文件链接起来,生成在特定平台可执行的程序。 最早的操作系统中,是没有链接器的,由加载器loader进行工作,所以ld的命名由此而来。...参考文章:C++版本发展史_c++历史版本_蓬莱道人的博客-CSDN博客 Makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译...make是一个命令工具,它解释Makefile 中的指令。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。...像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。
在C++中,会有一个基础类,这个基础类中已经实现好了很多功能,然后把其中的一些函数放给子类去修改和实现。...另一个时重要但更微妙的准则是在设计类时应该保持子类名称空间的干净。在Qt 3中,此项准则并没有一直遵循。以QToolButton为例对此进行说明。...,Insensitive是什么意思?...在Qt 3中,const函数QString::simplifyWhiteSpace()违反了此准则,因为它返回了一个QString而不是按名称暗示的那样,改变调用它的QString对象。...因为现代的IDE都会在写代码时显示参数名称,所以值得在头文件中给参数起一个恰当的名字并在文档中使用相同的名字。
领取专属 10元无门槛券
手把手带您无忧上云