C++
find12
这个作者很懒,什么都没留下…
展开
-
时间处理 c++ 獲取當前系統時間 1. 時間戳形式 2. char *形式[轉]
/* ctime example */#include <stdio.h>#include <time.h>#include <iostream>using namespace std;int main (){ time_t rawtime; time ( &rawtime ); printf("%ld\n", &rawtime); printf ( "The current local ti...转载 2020-06-01 13:48:35 · 217 阅读 · 0 评论 -
查找vector中的最大和最小值(的位置) C++ iterator用法
C++ iterator用法迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1)每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型。vector<int> ivec(1...转载 2019-11-29 16:07:11 · 5796 阅读 · 0 评论 -
C++ this指针详解(精辟)
this 是C++中的一个关键字,也是一个 const指针,它指向当前对象,通过它可以访问当前对象的所有成员。所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。友元函数没有this指针,因为友元不是类的成员。只有成员函数才有this指针。下面是使用 this 的一个完整示例:#include <i...转载 2019-08-14 10:52:44 · 3876 阅读 · 0 评论 -
int main(int argc, char **argv) 、char** argv与char *argv[]区别
参考链接int argc, char **argv 用于运行时,把命令行参数传入主程序。argc --命令行参数总个数,包括可执行程序名。argv[i] -- 第 i 个参数。argv[0] --可执行程序名。例如运行:abc.exeargc 等于 1, argv[0] 是 "abc.exe"例如运行:rec.exe 4 5.2argc 等于 3, argv[0...转载 2019-07-26 01:13:17 · 1052 阅读 · 0 评论 -
C++ 数据封装
C++数据封装所有的 C++ 程序都有以下两个基本要素:程序语句(代码):这是程序中执行动作的部分,它们被称为函数。 程序数据:数据是程序的信息,会受到程序函数的影响。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。数据封装是一种把数据和操作数据的函数捆绑在一...转载 2019-08-02 11:45:14 · 191 阅读 · 0 评论 -
C++ 继承
原文链接C++继承面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承代表了is a关系。例如,哺乳动物是动物,...转载 2019-08-02 11:13:07 · 111 阅读 · 0 评论 -
C++ 类构造函数 & 析构函数
原文链接类的构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。下面的实例有助于更好地理解构造函数的概念:#include <iostream> using namespace std; class Line...转载 2019-08-02 11:03:35 · 117 阅读 · 0 评论 -
拷贝构造函数调用情况
拷贝构造函数只有在以下三种情况下才会被调用:1) 一个对象作为函数参数,以值传递的方式传入函数体;2) 一个对象作为函数返回值,以值传递的方式从函数返回;3) 一个对象用于给另外一个对象进行初始化(常称为赋值初始化)。...原创 2019-07-28 19:11:58 · 520 阅读 · 0 评论 -
C++之重载函数
原文链接重载函数在实际应用中会遇到这样的问题,同一项功能,由于有不同类型的需求,需要分别编制不同的函数。例如求一个数的绝对值,由于类型不同的需要,有下述不同名字的函数Intabs(int);Longlabs(long);Doublefabs(double);这些函数的功能是相同的,但是名称不同,需要调用的时候就很麻烦,如果都使用相同的函数名是不是就很方便了呢。C...转载 2019-08-01 18:32:02 · 1146 阅读 · 0 评论 -
new,delete,malloc,free
new delete -- 运算符new---在堆区申请内存空间delete---释放申请的空间new申请一个元素的内存空间: 数据类型 *指针名 = new 数据类型;new申请一个数组的内存空间:数据类型 *指针名 = new 数据类型[元素个数];注意:释放时,如果是一个元素的内存空间 delete p; 但是如果是整个数组:delete []p; 否则只是释...原创 2019-08-01 18:26:07 · 90 阅读 · 0 评论 -
引用,引用与指针区别
语法:类型 &引用名=目标变量名;对数组的引用语法:类型 (&引用名)[数组中元素数量]=数组名;对指针的引用语法:类型 *&引用名=指针名;//可以理解为:(类型*) &引用名=指针名,即将指针的类型当成类型*常引用语法:const 类型 &引用名=目标变量名;4、引用 --- 变量的别名 引用定义:数据类型 &a...原创 2019-08-01 17:56:32 · 630 阅读 · 0 评论 -
C++ 多线程
C++多线程多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。基于进程的多任务处理是程序的并发执行。 基于线程的多任务处理是同一程序的片段的并发执行。多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径。本教程假设您使用的是 Linu...转载 2019-08-02 12:20:59 · 151 阅读 · 0 评论 -
C++ 类访问修饰符
https://www.runoob.com/cplusplus/cpp-classes-objects.html数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记public、private、protected来指定的。关键字public、private、protected称为访问修饰符。一个类可以有多个 p...转载 2019-08-13 19:00:30 · 171 阅读 · 0 评论 -
C++ 友元函数
C++ 类 & 对象类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关...转载 2019-08-14 10:19:39 · 123 阅读 · 0 评论 -
可重入和不可重入
原文链接重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLO...转载 2019-09-13 21:45:06 · 551 阅读 · 0 评论 -
逻辑运算符、位运算符
1,逻辑运算符:&& 逻辑与,可以理解为并且的意思.|| 逻辑或,可以理解为或者的意思,也就是条件可以2取一! 逻辑非 (一元表达式)原创 2019-09-06 00:15:32 · 140 阅读 · 0 评论 -
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。 #define BIT3 (0x1 << 3)static int a;void set_bit3(void){ a |= BIT3;}void clear_bit3(void){ a &= ~BIT3;}...转载 2019-09-06 00:08:22 · 4026 阅读 · 0 评论 -
C++ 类成员函数
类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。让我们看看之前定义的类 Box,现在我们要使用成员函数来访问类的成员,而不是直接访问这些类的成员:class Box{ public: double length; // 长度 dou...转载 2019-08-13 10:45:06 · 413 阅读 · 0 评论 -
要使指针变量p指向2维数组A的第1个元素,正确的赋值表达式是()。
p=A或p=A[0]p=A[0]或p=A[0][0]p=A[0]或p=&A[0][0]p=A或p=&A[0][0]P=A, 是错误的,A代表的是二维数组中,数组A[0]的地址,和元素A[0][0]的地址在 数值上是一样的,但是不能直接把A赋给P,原因是它们的类型不同。此处应该明白A是一个二级的指针,所以p=A就是一个错误的语句...原创 2019-08-12 23:35:26 · 2474 阅读 · 0 评论 -
C++纯虚函数、抽象类
在C++中,可以将虚函数声明为纯虚函数,语法格式为:virtual 返回值类型 函数名 (函数参数) = 0;纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无...转载 2019-08-14 15:25:10 · 153 阅读 · 0 评论 -
C++虚函数注意事项以及构成多态的条件
虚函数的注意事项。1) 只需要在虚函数的声明处加上virtual 关键字,函数定义处可以加也可以不加。2) 为了方便,你可以只将基类中的函数声明为虚函数,这样所有派生类中具有遮蔽关系的同名函数都将自动成为虚函数。关于名字遮蔽已在《C++继承时的名字遮蔽》一节中进行了讲解。3) 当在基类中定义了虚函数时,如果派生类没有定义新的函数来遮蔽此函数,那么将使用基类的虚函数。4) 只有派生类的虚函...转载 2019-08-14 15:10:18 · 712 阅读 · 0 评论 -
C++多态和虚函数快速入门教程
在《C++将派生类赋值给基类(向上转型)》一节中讲到,基类的指针也可以指向派生类对象,请看下面的例子:运行结果:王志刚今年23岁了,是个无业游民。赵宏佳今年45岁了,是个无业游民。我们直观上认为,如果指针指向了派生类对象,那么就应该使用派生类的成员变量和成员函数,这符合人们的思维习惯。但是本例的运行结果却告诉我们,当基类指针 p 指向派生类 Teacher 的对象时,虽然使用了 Teac...转载 2019-08-14 12:00:05 · 552 阅读 · 0 评论 -
C++ vector 实现二维数组,赋值
vector二维数组赋值vector<vector<float> >bk;vector<float> MM; MM.push_back(1); MM.push_back(22); MM.push_back(3); MM.push_back(6); bk.push_back(MM);原文链接(1...原创 2019-05-11 15:19:30 · 54973 阅读 · 5 评论 -
A*算法简介
https://blog.csdn.net/u012234115/article/details/47152137https://www.cnblogs.com/zhoug2020/p/3468167.htmlhttps://blog.csdn.net/lnplnp_/article/details/81104779A星寻路算法介绍你是否在做一款游戏的时候想创造一些怪兽或者游戏主角...转载 2019-04-13 23:41:44 · 859 阅读 · 0 评论 -
c++ list
参考博文list是一个线性双向链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。由于其结构的原因,list随机检索的性能非常的不好,因为它不像vector那样直接找到元素的地址,而是要从头一个一个的顺序查找,这样目标元素越...转载 2019-04-15 22:29:53 · 465 阅读 · 0 评论 -
c++函数中返回一数组
http://www.runoob.com/cplusplus/cpp-return-arrays-from-function.htmlhttps://www.cnblogs.com/walter-xh/p/6192800.html转载 2019-04-01 11:49:13 · 3748 阅读 · 0 评论 -
学习C++ -> 向量(vector) 实现动态二维数组
原文链接(vector基础知识介绍)vector实现动态二维数组一、向量的介绍 向量vector是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。 在使用它时, 需要...转载 2019-03-31 20:31:26 · 13293 阅读 · 0 评论 -
C++中的矩阵运算
https://www.cnblogs.com/einyboy/p/3852319.htmlhttp://eigen.tuxfamily.org/dox/AsciiQuickReference.txt原创 2019-03-29 22:31:32 · 3206 阅读 · 0 评论 -
linux c setitimer用法说明
原文链接在linux c编程中,setitimer是一个比较常用的函数,可用来实现延时和定时的功能,网上有各种零零散散的用法说明,都只提到了个别用法,今天抽空实践整理了一份比较详细的:使用时需要引入的头文件:#include <sys/time.h>int setitimer(int which, const struct itimerval *new_va...转载 2018-11-19 22:45:04 · 231 阅读 · 0 评论 -
linxu c serrimer
原文链接在linux c编程中。setitimer是一个比較经常使用的函数。可用来实现延时和定时的功能,网上有各种零零散散的使用方法说明,都仅仅提到了个别使用方法,今天抽出时间实践整理了一份比較具体的:使用时须要引入的头文件: #include <sys/time.h>setitimer函数原型: int setitimer(int which, ...转载 2018-11-18 22:35:44 · 171 阅读 · 0 评论 -
cmake学习笔记
原文链接 作者:dbzhang800本文原文链接原文:http://blog.csdn.net/dbzhang800/article/details/6314073最大的Qt4程序群(KDE4)采用cmake作为构建系统 Qt4的python绑定(pyside)采用了cmake作为构建系统 开源的图像处理库 opencv 采用cmake 作为构建系统 ...看来不学习一下cma...转载 2018-07-30 00:24:31 · 303 阅读 · 0 评论 -
cmake的一些基础知识
原文链接 作者:小妖精Fsky 本博文的大概框架:内里有重复,待有时间重新整理1, cmake 的介绍,下载,安装和使用2, cmake 的手册详解,我关注了 -C和-G 的使用3, 在Linux中构建cmake 的工程第一个问题: cmake 介绍,下载和安装以及使用:https://fukun.org/archives/0421949.html cmake是ki...转载 2018-07-30 00:08:30 · 381 阅读 · 0 评论 -
Linux下gcc/g++、make和cmake的区别
原文链接 无鞋童鞋 文本程序到可执行文件生成无论在什么平台大致分为以下几个部分: 1.用编辑器编写源代码,如.c文件。 2.用编译器编译代码生成目标文件,如.o。 3.用链接器连接目标代码生成可执行文件,如.exe。 Linux平台下,.o文件一般是通过编译的但还未链接的目标文件,.out文件一般都是经过相应的链接产生的可执行文件(linux下)。当然这是一般情况下人...转载 2018-07-29 23:47:38 · 356 阅读 · 0 评论 -
list容器 循环访问时程序出错解决办法
#include<iostream>#include<set>#include<list>#include<bitset>using namespace std;class CMagicPath{public:list<int> path;bitset<27> MagicPathPointSet;stri...原创 2019-04-16 15:54:46 · 335 阅读 · 0 评论 -
二维数组赋值给opencv mat 并打印 mat
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>#include <stdio.h>using namespace std;using namespace cv;void InitMat(Mat& m,flo...原创 2019-04-26 11:09:29 · 1218 阅读 · 0 评论 -
二维数组赋值给openCV Mat
编译命令 :g++ arry_cv.cpp `pkg-config opencv --cflags --libs`#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>#include <stdio.h>using nam...原创 2019-04-26 13:47:48 · 2164 阅读 · 0 评论 -
全局变量、局部变量 区别
全局变量和局部变量的区别。 全局变量,储存在静态区.进入main函数之前就被创建.生命周期为整个源程序;局部变量,在栈中分配.在函数被调用时才被创建.生命周期为函数内。...原创 2019-05-09 23:53:39 · 113 阅读 · 0 评论 -
static、const、volatile
4、关键字static的作用是什么?解答:在C语言中,关键字static有三个明显的作用:在函数体中,一个被声明为静态的变量在这一函数被调用过程中只会被分配一次内存,且整个运行期间不会重新分配; 在函数体外、某个源文件内,一个被声明为静态的变量只可被该源文件内的所有函数访问,但不能被其他源文件的函数访问。它是一个本地的全局变量; 在某个源文件内,一个被声明为静态的函数仅仅只可以被...转载 2019-05-09 23:12:52 · 288 阅读 · 0 评论 -
molloc函数用法
原文链接一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用m...转载 2019-05-09 22:52:05 · 3096 阅读 · 0 评论 -
opencv Mat CV_32FC1格式数据以灰度图形式显示出来
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>#include <stdio.h> using namespace std;using namespace cv;//用二维数组初始化opencv Mat void...原创 2019-05-07 11:03:33 · 4954 阅读 · 0 评论