
C++
文章平均质量分 84
wu_qz
email:1302772589@qq.com
展开
-
mac入坑记录
记:公司里用MacBook Pro办公,奈何我这在学校只用过windows的人没用过macos系统,拿到手mc后,又是欣喜又是忧愁,师傅交代的工作很简单,可是这电脑不会用,脑子里都是idea,可以工具顺手,那个急呐。今天开始,记录mbpro的学习入门系列,把遇见的坑都记录一下。1.mac下怎么移动文件?(注意不是复制)mac的快捷键和window下还是有点像,但是又有点不像,像是因为有些快捷方...原创 2019-07-06 23:37:06 · 372 阅读 · 0 评论 -
c和c++中struct和typedef struct的区别
参考:https://www.cnblogs.com/qyaizs/articles/2039101.html1.C语言中struct和typedef struct的区别最近跟着雷神的博客学习FFMPEG,在看FFMPEG的源码的时候发现有些语句写法和自己平时见的不太一样,比如下面的语句:struct SwsContext *img_convert_ctx;明明SwsConte...原创 2018-06-27 21:58:09 · 2403 阅读 · 0 评论 -
C++学习:结构体内存对齐规则
内存对齐举例: 以下两个结构体:#include<iostream>using namespace std;struct A{ char a; int b; short c;};struct B{ short c; char a; int b;};int main(){ cout<&l原创 2018-07-10 13:18:42 · 422 阅读 · 0 评论 -
[详细]VS中C++的包含目录、附加包含目录和库目录和附加库目录的区别
转载自:https://blog.youkuaiyun.com/theonegis/article/details/42913255对Visual Studio中C++的包含目录、附加包含目录和库目录和附加库目录的区别不是很清楚,参考别人的文章整理出来的。供大家分享学习!Visual Studio C++工程中,右键一个Project,可以发现有两个地方设置Include的相关目录:1. V...转载 2018-06-26 09:15:39 · 1681 阅读 · 0 评论 -
C++学习之:命名空间、转义字符
1.命名空间在大型的程序时,每个源文件可能由不同的开发者开发。不同的源文件中可能有同样的名字。当这些源文件连接起来形成一个可执行文件时,就会造成重名。 名字空间是把一组程序实体组合在一起,构成的一个作用域。 一个名字空间中不能有重名,不同的名字空间中可以定义相同的实体名。当引用某个实体时,需要加上名字空间的限定 : 名字空间名::实体名 C++标准库中的名字都定义在名字空间std中 如...原创 2018-06-10 11:11:31 · 254 阅读 · 0 评论 -
C++学习之:STL标准模板库
STL提供了一组表示容器、迭代器、函数对象和算法的模板。 容器是一个与数组类似的单元,可以存储若干个值。STL容器是同质的,即存储的值的类型相同; 算法是完成特点任务(如对数组进行排序,或在链表中查找特定值)。 迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针。...原创 2018-07-14 21:11:31 · 734 阅读 · 0 评论 -
C++学习之:堆、栈、自由存储区、全局/静态存储区和常量存储区
转载自:http://www.cnitblog.com/guopingleee/archive/2009/02/16/54599.html C++堆、栈、自由存储区、全局/静态存储区和常量存储区收藏 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参...转载 2018-06-23 10:44:30 · 336 阅读 · 0 评论 -
C++学习之:类模板
1.类模板的定义类模板允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数或返回值能取任意数据类型。 定义格式:template <class 标识符〉//如果有多个参数,用逗号隔开。class 类名{…};比如template <class T>class Array{原创 2018-06-08 14:40:18 · 460 阅读 · 0 评论 -
C++学习之:虚函数
虚函数是在类定义中的函数原型声明前加一个关键字virtual。在派生类中重新定义时,它的函数原型(包括返回类型,函数名,参数个数和参数类型)必须与基类中的虚函数完全相同,否则编译器会认为派生类有两个重载函数。 当把一个函数定义为虚函数时,等于告诉编译器,这个成员函数在派生类中可能有不同的实现。必须在执行时根据传递的参数来决定调用哪一个函数。...原创 2018-05-31 21:58:42 · 292 阅读 · 0 评论 -
vs2013下动手写*.dll文件并调用它
dll文件Dynamic Link Library(即“动态链接库”)的缩写。使用dll文件好处多多。1.写dll文件原创 2018-06-28 11:10:54 · 1318 阅读 · 0 评论 -
Win32控制台应用程序、Win32项目、MFC应用程序的区别与联系
转载自:https://blog.youkuaiyun.com/zhao1999qian/article/details/570841431、 区别(1)Win32控制台程序,没有界面,只有命令符。生成的“.exe”文件直接运行操作即可。(2)Win32项目,有界面。但是界面里面的控件,基本上要自己去实现。(3)MFC应用程序,也有界面,饭界面里的控件不需要自己去实现了,常用的控件...转载 2019-11-03 23:05:03 · 841 阅读 · 0 评论 -
多线程入门-1
/*@Author: wuzhiqiang1205@126.com@Date: 2018-11-23 14:44:13@blog: https://blog.youkuaiyun.com/wu_qz/@LastEditTime: 2018-11-23 21:30:38@Description: 多线程入门学习笔记*/多线程入门学习以下内容总结自KuangXiang老师免费分享在网易云课堂...原创 2018-11-23 21:32:12 · 264 阅读 · 0 评论 -
线程、进程、并发
1.并发两个或者多个的任务(独立的活动)同时发生(进行)。单核CUP下是没有并发的,单核CPU下所谓的“并发”是由操作系统调度,每秒钟进行多次所谓的“任务切换”。这种任务切换称为上下文切换,上下文切换是有时间开销的,比如操作系统要保存切换时的各种状态信息、执行进度,待切换回来的时候要知道原来的状态。2.进程在windows下运行起来的一个exe文件就是一个进程。3.线程线程其实就是用来...原创 2018-11-14 16:11:35 · 210 阅读 · 0 评论 -
elipse中c++开发入门
安装 jdk在其oracle的官网下载最新版的jdk,然后一路next安装即可安装 eclipse在eclispe官网下载带cdt的eclipse,即已经包含c/c++开发开发套件的版本,如下图所示 安装 m...转载 2018-09-16 22:14:09 · 517 阅读 · 0 评论 -
【实现】批处理当前目录下的所有txt文件
目的:最近跑实验生成了很多txt的文件,要提取txt文件中的指定内容,然后就写了个算法定向读取txt中的信息并想把这些信息存储在csv文件中,一个目录下几十个txt,如果这样写@echo offtxtToCsv.exe 1.txt result.csvtxtToCsv.exe 2.txt result.csv...//这样写是不是有点low...txtToCsv.exe 1000....原创 2018-08-08 21:51:24 · 3940 阅读 · 0 评论 -
链表的应用
1.循环链表–约瑟夫环#include <iostream>using namespace std;struct node{ int data; node *next;};int main(){ node *head, *p, *q; // head为链表头 int n, i; //输入n cout <&...原创 2018-08-04 20:55:43 · 449 阅读 · 0 评论 -
C++学习之:函数指针(指向函数的指针)
前两天在看FFMPEG源码,里边很多实用函数指针的地方,自己就顺便去看了看函数指针。记录备用。函数的指针 函数指针:指向函数代码的起始地址定义返回类型 (*指针变量名)( ) ; //如:int (*p)(int a,int b);//定义函数指针使用 ://定义+赋值int (*p)(int a,int b);int isdigit(int a...原创 2018-07-29 19:33:10 · 6135 阅读 · 2 评论 -
main函数实参如何传进程序中
方法一: 项目——属性——配置属性——调试——命令参数,设置命令参数就可以传入。 方法二:打开cmd——e:(表示生成的exe文件在e盘中)点击回车——输入exe文件所在的文件夹位置+exe文件名.exe——空格——输入实参值即可——点击回车。 ...原创 2018-07-15 21:54:20 · 740 阅读 · 0 评论 -
C++学习之:文件读写
C++中的文件和流C++中把文件看成是字节序列,即由一个个字节顺序组成。每个文件以结束符(EOF)结束,这种文件称为流式文件。可以把C++的文件看成是一个字符串。只不过这个字符串不是存放在内存中,而是存放在外存中。不是以‘\0’结尾,而是用EOF结尾。当打开一个文件时,该文件就和某个流关联起来。c++中文件访问过程定义一个流对象(为文件找一个代理)打开文件:将流对象与文件关联起...原创 2018-07-26 09:35:00 · 481 阅读 · 0 评论 -
静态(static)函数与普通函数
static函数与普通函数的区别: 1.用static修饰的函数,限定在本源码文件中使用,不能被本源码文件以外的代码文件调用。 2.普通的函数,默认是extern的,也就是说,可以被其它代码文件调用该函数。 若在函数的返回类型前加上关键字static,函数就被定义成为静态函数。普通 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其...原创 2018-07-14 16:21:58 · 13851 阅读 · 0 评论 -
大小端存储与(char*)&含义
以下内容为自我之言,若有错误烦请指点。1.内存中的十六进制表示在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节为8bit即8个位,一个位是一个二进制数。用8个二进制位来表示一个字节显得太长,而用两个十六进制位就可以表示一个字节,这样显的更加简洁。如0X12表示十进制的数18。2.为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个...原创 2018-07-13 21:27:58 · 2458 阅读 · 0 评论 -
C++基础:控制台输入输出
输出流C++的类ostream提供了格式化输出和无格式输出的功能 输出功能包括用流插入运算符输出标准类型的数据; 用成员函数put输出字符; 成员函数write的无格式化输出; 输出特定形式数值1.标准类型的数据用流插入运算符<<输出格式: cout << 数据项 ;C++能自动判别数据类型,并根据数据类型解释内存单元的信息,把...原创 2018-07-24 21:49:41 · 16876 阅读 · 3 评论 -
printf、sprintf、fprintf三者区别、stdout, stdin, stderr三者区别
1,printf就是标准输出,在屏幕上打印出一段字符串来。 2,sprintf就是把格式化的数据写入到某个字符串中。返回值字符串的长度。 3,fprintf是用于文件操作。 原型:int fprintf(FILE *stream,char *format,[argument]); 功能:fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因...原创 2019-11-03 23:06:29 · 459 阅读 · 0 评论 -
C++学习之:类型转换和强制类型转换
1.自动类型转换 在c++中,整型、实型、字符型、布尔类型都可以参加算术运算。但事实上,c++只能执行同类型的数据的运算。例如,int与int型数据进行运算,double与double型的数据进行运算。在进行不同类型的数据运算之前,系统会自动将运算数转换成同一类型,再进行运算。这种运算称为自动类型转换。转换的总原则:非标准类型转换成标准类型,占用空间少的向占用空间多的靠拢,数值范围小的...原创 2018-04-29 11:05:03 · 1641 阅读 · 0 评论 -
C++学习之:查找与排序
对于查找一个数组中某个元素的方法最基本、最简单的查找是顺序查找,对于已经排好序的数组,可以采用二分查找。二分比顺序查找更高效。1.查找1.1 顺序查找从数组的第一个元素开始,依次往后比较,直达找到满足条件的那个位置的元素,输出元素位置或该位置上元素的值。int array[7]={2,3,4,6,7,9,10};int x;cout&lt;&lt;"请输入要查找的...原创 2018-04-28 19:36:32 · 1936 阅读 · 0 评论 -
C++学习之:基于哨兵的循环
1.for循环的缺点 for循环可以很好很直观第控制重复次数,但有些时候,我们遇到的问题是编程时还无法确定重复次数,这个时候就可以使用基于哨兵的循环来实现,实现哨兵循环的语句有while和do-while两种。控制循环结束的表达式就称为“哨兵”2.while和do-while格式 while(表达式) //先判断表达式->再执行下边的语句 { 需要执行的语句; //...原创 2018-04-28 15:45:37 · 3050 阅读 · 0 评论 -
C++学习之:链表
1.用途:用于存储一组数据元素的工具2.使用数组存在的问题:必须事先知道元素的个数插入、删除会引起大量数据的移动3.使用链表的优点不需要事先准备存储空间,需要时动态申请空间元素分散存储在内存中,用指针记住有关系的元素的存储地址4.链表分类 大致有三种类型: 单链表只需要之后下一个元素在哪里。 双链表不仅要知道下一个元素在哪里,还要知道上一个元...原创 2018-05-19 15:59:36 · 1878 阅读 · 0 评论 -
C++学习之:编译与链接
编译 程序在编译是分模块编译,编译是以 .cpp文件问单位进行。每个 .cpp文件会生成以个.obj的目标文件,调用别人的类、函数等,只要提前声明就可以在编译阶段通过(声明以#include 形式或其他如前向声明形式进行)。 链接 链接是吧各个模块组织在一起自动完成模块间的调用,将各个.cpp文件生成的.obj文件生成一个可执行文件。 ...原创 2018-04-28 12:39:57 · 187 阅读 · 0 评论 -
【Effective C++】学习之:new和delete、动态二维数组
C++中应该使用配套的new和delete,规则:如果你在调用new时使用了[ ],则你必须在调用delete时也使用[ ],如果你在调用new的时候没有使用[ ],那么你也不应该在调用delete时使用[ ]。如:string *strPtr1=new string;string *strPtr2=new string[10];...delete strPtr1; //...原创 2018-04-28 10:57:32 · 385 阅读 · 0 评论 -
【Effective C++】学习之一:声明、定义、初始化、赋值
1.声明(declaration)用来将一个object、function、class、或者template的型别名称告诉编译器,声明是不带有细节信息。比如:extern int x; //object declarationint numDigits(int number); //function declaratonclass Clock; ...原创 2018-04-27 19:32:05 · 219 阅读 · 0 评论 -
C++学习之:指针
1.空指针 指针在使用之前必须初始化,没有初始化的指针可能指向任意地址,对这些指针操作可能会导致程序错误,如果在定义数组时还不知道数组指向什么位置,可以初始化为空指针,空指针没有指向任何空间,空指针用常量NULL表示,NULL的值一般赋为0,不能引用空指针指向的值2.指向常量的指针(常量指针):可访问指向地址存放的值,但不能修改指向地址存放的值。 是一个指向的内容是常量的指针变量。常量...原创 2018-05-05 11:15:16 · 314 阅读 · 0 评论 -
C++学习之:字符串
除了科学计算外,计算机最主要的用途是文字处理。有一系列字符组成的一个处理单元称为字符串,C++中的字符串是用一对双引号括起来、由'\0'作为结束符的一组字符。1.字符串存储 字符串符合数组的两个特性:所有元素类型都是字符型,字符串中的字符有先后的次序,所以通常用一个字符数组来存储字符串。如将“hello,world!”这个字符存储在字符数组中:char ch={'h'...原创 2018-05-04 19:22:07 · 1579 阅读 · 0 评论 -
C++:动态生成文件名
该函数包含在stdio.h的头文件中,使用时需要加入:#include &amp;amp;lt;stdio.h&amp;amp;gt; sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而printf函数打印输出到屏幕上. sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。 sprintf函数的格式: int sprintf( char *buffer,...原创 2018-05-09 08:30:01 · 5977 阅读 · 0 评论 -
C++学习之:使用数组注意事项
1.定义数组时,数组的元素个数必须是编译时的常量,即在程序中以常量或常量表达式的形式出现,元素个数在写程序时就已经确定。比如:double doubleArray1[10]; //正确的定义方法int i=10;const int j=20;double doubleArray2[i]; // 错误的定义方法double doubleArray3[j]; //正确的定义...原创 2018-04-30 10:36:35 · 1172 阅读 · 1 评论 -
C++学习之:变量的存储类别
在c++中,每个变量有两个属性:类型:变量所存储的数据类型(如int、double、char);存储类型:变量所存储的区域(atuo、register、extern、static)变量的作用域决定了变量的有效范围。变量的存储类别决定了变量的生存期限。在计算机中,内存被分成不同的区域。不同区域与不同的用途。按变量在计算机内的存储位置来分,变量分为:自动变量(atuo)、静态变量(static)、寄存...原创 2018-04-29 20:04:39 · 551 阅读 · 0 评论 -
C++学习之:数组作为函数参数
当形参是数组时,实际参数也应该是数组,而且形参和实参数组的类型也要一致。按照值传递的机制,在参数传递时用实际参数的值初始化形式参数,即将作为实际参数的数组的起始地址赋给形式参数的数组名,这样形式参数和实际参数的数组具有同样的起始地址,也就是说形参和实参的数组其实是同一个数组。在函数中对形式参数数组的任何操作实际是对实参数组的修改。故数组传递本质是仅传递了数组的起始地址,并不是将作为实际参数...原创 2018-04-29 20:32:53 · 718 阅读 · 0 评论 -
C++学习之:带默认值的函数、内联函数
1.带默认值的函数C++中,允许在定义或声明函数时,为函数的某个参数指定默认值。当调用函数时,没有为它指定实际参数时,系统自动将默认值赋给形式参数。例如可以声明函数成:void print(int value, int base=10); //如果后边调用print(20),相当于调用print(20,10)需要注意几点:缺省的函数无论有几个,都必须放在参数序列的最后,编译器一次把实际参数传给形参...原创 2018-04-29 21:03:37 · 358 阅读 · 0 评论 -
C++学习之:容器与迭代器
1.容器容器是特定类型的对象的集合,也就是为了保存一组对象而设计的类。 容器一般提供插入、删除、查找以及访问容器中的所有对象等功能。 用户不必关心容器中的对象是如何保存的。用户只需要使用容器提供的插入操作将对象放入容器,用删除操作将对象从容器中删除。 数组是容器的一种实现,链表也是容器的一种实现。2.迭代器...原创 2018-06-08 10:28:43 · 469 阅读 · 0 评论 -
C++学习之:运算符重载
1.什么叫运算符重载 运算符重载就是写一个函数解释某某个运算符在某个类中的含义,这个函数可以是所重载这个类的成员函数或全局函数。使得编译器在遇见这个运算符时能自动找到重载的这个函数。函数名应体现出与某个被重载的运算符的联系。 C++...原创 2018-05-31 14:55:27 · 571 阅读 · 0 评论 -
C++学习之:组合与继承
1.组合组合就是把用户定义类的对象作为新类的数据成员 ,大多数对象成员不能像内置类型一样直接赋值,所以不能再构造函数体中通过赋值对用户自定义类型数据成员进行初始化,必须用初始化列表去初始化对象成员。class Complex{ friend Complex operator+(const Complex &amp;amp;x, const Complex &amp;amp;y); ...原创 2018-05-31 15:37:37 · 266 阅读 · 0 评论