
C++
CurryCoder
个人微信公众号:CurryCoder的程序人生
所有代码在此https://github.com/cdlwhm1217096231,欢迎各位小伙伴star、follow、fork
个人主页:https://cdlwhm1217096231.github.io/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第三节 线程传参详解、detach()大坑、成员函数做线程函数
1.传递临时对象作为线程参数原始的输入程序如下:#include <iostream>#include <thread>using namespace std;void myprint(const int& i, char* pmybuf){ cout << i << endl; cout << pmybuf...原创 2019-10-17 19:18:05 · 341 阅读 · 0 评论 -
第二节 线程启动、结束、创建线程多个方法、join()、detach()
1.范例演示线程运行的开始和结束可执行程序运行起来,生成一个进程,该进程所属的主线程开始自动运行。#include <iostream>#include <vector>#include <map>#include <string>using namespace std;int main(){ cout <<...原创 2019-10-16 22:13:40 · 327 阅读 · 0 评论 -
两个字符串之间的连接函数,不使用strcat()函数
#include <stdio.h>// 获得字符串的长度int getLength(char* src){ int len; for(len = 0; src[len] != '\0'; len++); return len;}// 两个字符串之间的连接函数char* strcat(char* src, char* dest){ int len = ...原创 2019-10-14 20:55:00 · 1062 阅读 · 0 评论 -
两个字符串之间的复制,不使用strcopy()函数
1.strcopy()函数strcopy()函数只提供字符串的复制。即strcopy()只用于字符串之间的复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。#include <iostream>using namespace std;// 两个字符串之间的复制char* strcopy(char* dest, char* src){ if(dest =...原创 2019-10-14 20:54:20 · 2288 阅读 · 0 评论 -
C++中的基本数据类型介绍
1.cpp中的基本内置数据类型(7种)bool char int float double void(无类型) wchar_t(宽字符型):typedef wchar_t short int;一个基本类型可以被一个或多个类型修饰符来修饰。signedunsignedshortlong下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最...原创 2019-03-14 08:09:50 · 1906 阅读 · 0 评论 -
C++中的基本变量类型介绍
1.cpp变量类型变量实际上是存储空间的名称,cpp中每个变量都有指定的类型,类型决定变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可以作用在变量上。变量名可以是字母 数字 下划线组成,必须以字母或下划线开头。区分大小写几种基本的变量类型:2.cpp中的变量定义变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量的定义指定一个数据类型,并包含该类...原创 2019-03-14 08:10:21 · 2209 阅读 · 0 评论 -
C++中的变量作用域介绍
1.Cpp的变量作用域作用域是程序的一个区域,一般来说有三个地方可以定义变量:局部变量:在函数或一个代码块内部声明的变量形式参数:在函数参数的定义中声明的变量(稍后介绍)全局变量:在所有函数外部声明的变量2.局部变量在函数或一个代码块内部声明的变量,称为局部变量,它只能被函数内部或代码块内部的语句使用。如下:// 局部变量声明,没有为其分配内存空间int main()...原创 2019-03-14 09:39:14 · 1100 阅读 · 0 评论 -
C++中的常量介绍
1.Cpp中的常量常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。2.整型常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一...原创 2019-03-14 10:15:20 · 1550 阅读 · 0 评论 -
C++中的修饰符类型
1.Cpp修饰符类型C++允许在char、int 和double数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。下面列出了数据类型修饰符:signedunsignedlongshort修饰符signed、unsigned、long 和 short 可应用于整型;signed和unsigned可应用于字符型,long可应用于双精度型;修饰符sig...原创 2019-03-14 20:00:29 · 1077 阅读 · 0 评论 -
C++中的存储类
1.Cpp中的存储类存储类定义C++程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。从C++ 11开始,auto关键字不再是C++存储类说明符,且register关键字被弃用。下面列出C++程序中可用的存储类:autoregisterstaticexternmutablethread_local (C++11)2.auto存储类自C+...原创 2019-03-14 20:49:27 · 419 阅读 · 0 评论 -
C++中的运算符
1.Cpp运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符2.算术运算符下表显示了 C++ 支持的算术运算符,假设变量 A 的值为 10,变量 B 的值为 20,则:// 算术运算符 int a = 21; int b = ...原创 2019-03-15 09:25:33 · 4002 阅读 · 0 评论 -
C++中的循环
1.循环类型cpp中提供了以下几种循环类型:1.1 while循环cpp中的while循环格式: while(循环条件){ 语句1; ... 语句n; }while 循环的关键点是循环可能一次都不会执行。当条件被测试且结果为假时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。1.2 for循环cpp中...原创 2019-03-15 21:31:58 · 3522 阅读 · 0 评论 -
C++中的字符串
1.Cpp中的字符串C++提供了以下两种类型的字符串表示形式:C风格字符串C++引入的string类类型1.1 C风格字符串C风格的字符串起源于C语言,并在C++中继续得到支持。字符串实际上是使用null字符’\0’终止的一维字符数组。因此,一个以null结尾的字符串,包含了组成字符串的字符。下面的声明和初始化创建了一个"Hello"字符串。由于在数组的末尾存储了空字...原创 2019-03-20 09:49:00 · 1128 阅读 · 0 评论 -
C++中的判断
1.Cpp中的判断语句C++ 编程语言提供了以下类型的判断语句:1.1 if语句一个if语句由一个布尔表达式后跟一个或多个语句组成。如果布尔表达式为true,则if语句内的代码块将被执行。如果布尔表达式为false,则if语句结束后的第一组代码(闭括号后)将被执行。C语言把任何非零和非空的值假定为true,把零或null假定为false。语法格式: if(布尔表达式){ ...原创 2019-03-16 11:45:42 · 9493 阅读 · 0 评论 -
C++中的重载、覆盖、隐藏对比
1.重载、覆盖、隐藏三者概念解释重载(overload):函数名相同,函数参数(参数个数、参数类型、返回值类型)不同,必须位于同一个域(类)中。覆盖(override): 函数名相同,函数参数(参数个数、参数类型、返回值类型)相同,分别位于派生类和基类中,virtual(虚函数)隐藏(hide):派生类中的函数隐藏了基类中的同名函数情形1: 函数名相同、 函数参数相同、 分别位于派生类...原创 2019-03-20 19:38:58 · 369 阅读 · 1 评论 -
C++中的指针
1.Cpp中的指针每个变量都有一个内存位置,每一个内存位置都定义了可使用&地址运算符访问的地址,它表示了变量在内存中的一个地址。 int var1; int var2[10]; cout << "变量var1的地址:" << &var1 << endl; // 访问变量var1的在内存中的位置,使用&地址运算符...原创 2019-03-21 10:13:48 · 895 阅读 · 0 评论 -
C++中的函数
1.Cpp中的函数函数是一组一起执行一个任务的语句。每个C++ 序都至少有一个函数,即主函数main() ,所有简单的程序都可以定义其他额外的函数。函数声明告诉编译器函数的名称、返回类型和参数;函数定义提供了函数的实际主体C++标准库提供了大量的程序可以调用的内置函数。例如,函数strcat()用来连接两个字符串,函数 memcpy()用来复制内存到另一个位置。函数还有很多叫法,比如方法、...原创 2019-03-17 17:44:03 · 1949 阅读 · 0 评论 -
常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释
1、一.基础知识引用并非对象引用必须初始化引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起类型要严格匹配int &a = 10; //错误:引用类型的初始值必须是一个对象 double a = 3.14; int &b = a; //错误:此处引用类型的初始值必须是int型对象指...原创 2019-03-13 10:57:38 · 630 阅读 · 1 评论 -
C++中的参数传递方式:传值、传地址、传引用总结
指针:指针是一个变量,只不过这个变量中存储的是一个地址,指向内存中的一个单元。引用:引用和原变量是同一个东西,只不过是原变量的一个别名。 int a = 10; 定义一个整型变量a int *p = &a; 定义一个指向整型变量的指针变量p,该指针指向a的存储单元,即p的值是a存储单元的地址 int &b = a; 定义一个整型变量a的引用,a和b...原创 2019-03-13 11:06:19 · 897 阅读 · 0 评论 -
C++中的文件读写操作(1)
#include "iostream"#include "fstream"#include "vector"#include "string"using namespace std;/* ofstream 文件写操作,内存写入存储设备ifstream 文件读操作,存储设备读取到内存中fstream 读写操作,对打开的文件可进行读写操作文件打开模式: ios:...原创 2019-03-13 11:06:57 · 766 阅读 · 0 评论 -
C++中的文件读写操作(2)
#include "iostream"#include "fstream"#include "vector"#include "string"using namespace std;// demo1中是向文件中写入string类型,下面是向文件中写入int类型int cost[10][10];int main(){ int v, w, weight; ifstr...原创 2019-03-13 11:08:36 · 303 阅读 · 0 评论 -
C++中的日期和时间
1.C++中的时间和日期C++标准库没有提供所谓的日期类型,C++继承了C语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在C++程序中引用"ctime"头文件。有四个与时间相关的类型:clock_t,time_t,size_t,tm。类型clock_t,size_t,time_t能够把系统时间和日期表示为某种整数;结构体类型tm把时间和日期以C结构体的形式保存,t...原创 2019-03-24 21:23:15 · 3936 阅读 · 2 评论 -
C++中的数字
1.Cpp中的数字当需要用到数字时,我们会使用原始的数据类型,如int、short、long、float和double等等。这些用于数字的数据类型,其可能的值和数值范围,已经在C++数据类型中讨论过。1.1 定义数字int main(){ // 数字定义 short s; int i; long l; float f; double d;...原创 2019-03-18 09:00:21 · 1308 阅读 · 0 评论 -
C++中基本的输入输出
1.Cpp中基本的输入输出C++标准库提供了一组丰富的输入/输出功能,将在后续的章节进行介绍。本章将讨论C++编程中最基本和最常见的I/O操作。C++的I/O发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。2.I/O库文件介绍2.1 标准输出流...原创 2019-03-25 09:03:23 · 471 阅读 · 0 评论 -
C++中的sizeof与strlen对比
1.sizeof 是可用来计算字符串的总长度,包括\02.strlen计算不包含\0的字符串的长度3.32位机器上,指针需要4个字节存储;64位机器上,指针需要8个字节存储#include "iostream"#include "string"#include "cstring"using namespace std;void Func(char str_arg[2]);...原创 2019-03-18 19:23:48 · 432 阅读 · 0 评论 -
C++中的数组
1.Cpp中的数组C++支持数组数据结构,它可以存储一个固定大小的相同类型的元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,如a0,a1,a2,a3,a4…,a99,而是声明一个数组变量,比如as,然后使用as[0],as[1],as[2],…,as[99]来代表一个个单独的变量,数组的特定元素可以通过索引来访问。所数组都是...原创 2019-03-19 10:59:10 · 36389 阅读 · 5 评论 -
C++中的结构体
1.Cpp中的结构体C/C++数组允许定义可存储相同类型数据项的变量,但是结构体是C++中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。结构体用于表示一条记录,假设想要跟踪图书馆中书本的状态,可能需要跟踪每本书的下列属性: Title: 标题 Author: 作者 Subject: 类别 Book ID: 书的ID2.定义结构体为了定义...原创 2019-03-26 09:23:56 · 1780 阅读 · 0 评论 -
C++中的数据封装
1.Cpp中的数据封装所有的C++程序都有以下两个基本要素:程序语句(代码):这是程序中执行动作的部分,它们被称为函数。程序数据:数据是程序的信息,会受到程序函数的影响。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的OOP概念,即数据隐藏。数据封装是一种把数据和操作数据的函数捆绑在一起的...原创 2019-04-04 08:52:39 · 1577 阅读 · 0 评论 -
C++中的接口(抽象类)
1.Cpp中的接口(抽象类)接口描述了类的行为和功能,而不需要完成类的特定实现。接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 “= 0” 来指定的,如下所示,Box类就是一个抽象类: class Box{ public: ...原创 2019-04-04 09:17:51 · 664 阅读 · 0 评论 -
计算类class的sizeof大小
1.实例1如下: class A{ }; class B{ char ch; int x; }; class C{ public: void Print(void){} }; class D { public: virtual void Print(void){} };Q:在32位机器上sizeof(...原创 2019-04-04 10:31:38 · 1099 阅读 · 0 评论 -
C++中的引用
1.Cpp中的引用引用变量是一个别名,即它是某个已经存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。2.Cpp中的引用VS指针引用与指针之间的区别:不存在空的引用,引用必须要连接到一块的合法内存一旦引用被初始化为一个对象,就不能被指向另一个对象,指针可以在任何时候指向到另一个对象引用必须在创建时被初始化,指针可以在任何时间被初始化。...原创 2019-03-23 20:48:09 · 404 阅读 · 0 评论 -
C++中的类和对象
1.C++中的类和对象C++在C语言的基础上增加了面向对象编程,C++支持面向对象编程。类是C++中的核心特性,通常被称为用户自定义的成员。类用于指定对象的形式,它包含了数据表示法和处理数据的方法。类中的数据和方法称为类的成员,函数在一个类中被称为类的成员。2.C++类定义定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么。也就是说,它...原创 2019-03-27 10:34:38 · 1297 阅读 · 0 评论 -
C++中的STL算法详解
1.STL算法详解STL提供能在各种容器中通用的算法(大约有70种),如插入、删除、查找、排序等。算法就是函数模板,算法通过迭代器来操纵容器中的元素。许多算法操作的是容器上的一个区间(也可以是整个容器),因此需要两个参数,一个是区间起点元素的迭代器,另一个是区间终点元素的后面一个元素的迭代器。例如,排序和查找算法都需要这两个参数来指明待排序或待查找的区间。有的算法返回一个迭代器,例如,find...原创 2019-04-10 10:32:16 · 577 阅读 · 0 评论 -
C++中STL中的大、小、相等概念
1.STL的大、小、相等概念STL中关联容器内部的元素是排序的。STL中的许多算法也涉及排序、查找。这些容器和算法都需要对元素进行比较,有的比较是否相等,有的比较元素大小。在STL中,默认情况下,比较大小是通过<运算符进行的,和>运算符无关。在STL中提到“大”、“小”的概念时,以下三个说法是等价的:x 比 y 小表达式x<y为真y 比 x 大注意:y比x大意...原创 2019-04-10 10:44:39 · 538 阅读 · 0 评论 -
C++中的vector
1.Cpp中的vector(可变长的动态数组)vector是顺序容器的一种。vector是可变长的动态数组,支持随机访问迭代器,所有STL算法都能对vector进行操作。要使用vector,需要包含头文件vector。在vector容器中,根据下标随机访问某个元素的时间是常数,在尾部添加一个元素的时间大多数情况下也是常数,总体来说速度很快。在中间插入或删除元素时,因为要移动多个元素,因此速度较...原创 2019-04-10 11:15:18 · 562 阅读 · 0 评论 -
C++中的文件和流
1.Cpp中的文件和流到目前为止,已经使用了iostream标准库,它提供了cin和cout方法分别用于从标准输入读取流和向标准输出写入流。下面将介绍如何从文件读取流和向文件写入流。这就需要用到C++中另一个标准库fstream,它定义了三个新的数据类型:2.打开文件ofstream和fstream在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream和fstrea...原创 2019-04-05 10:50:35 · 459 阅读 · 0 评论 -
C++中的cin、cin.getline()、getline()函数比较
1.cin用法用法1:输入一个数字或字符 // cin用法 // 用法1:输入一个数字或字符 int a, b; cin >> a >> b; cout << a + b << endl;用法2:用于接收一个字符串,遇到空格,TAB键、回车就结束 // 用于接收一个字符串,遇到空格,TAB...原创 2019-04-05 11:16:43 · 348 阅读 · 0 评论 -
C++中的拷贝构造函数
1.拷贝构造函数拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:a.当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值b.若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数c.当函数的返回值是类对象时,系统自动调用拷贝构造函数如果在类中没有定义拷...原创 2019-03-31 21:33:09 · 1239 阅读 · 2 评论 -
C++中的友元函数friend
1.C++中的友元函数类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字frien...原创 2019-03-31 22:03:43 · 702 阅读 · 1 评论 -
C++中的堆VS栈
栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new和malloc分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用fr...原创 2019-03-31 22:28:46 · 369 阅读 · 0 评论