c++
I code
这个作者很懒,什么都没留下…
展开
-
解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file分析原因:ld提示找不到库文件,而库文件就在当前目录中。链接器ld默认的目录是/lib和/usr/lib,如果放在其他路径也可以,需要让ld知道库文件在哪里。方法1:编辑/etc/ld.so.conf文件,在新的一行中加入库文件所在目录;运行ldconfig,以更新/etc/ld.so.cache文件;方转载 2021-01-29 22:52:53 · 524 阅读 · 0 评论 -
Qt父子对象关系,信号褿
父子对象原创 2021-01-20 22:00:33 · 242 阅读 · 0 评论 -
人工智能
人工智能人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。机器学习用算法分析数据,得出模型后进行预测。监督学习*给的训练集有标签。得出一个算法,去测试没有标签的测试集。如果标签是离散的就是分类问题。标签是连续的就是线性回归问题。8 算法的得出是通过梯度下降算法,来更新损失函数的权重,求得使损失函数的最小值的权重。损失函数是真实值和预测值的差。无监督学习给的数据没标签,分析聚类计算机视觉对图像目标进行识别、跟踪和检测计算机视觉的最终研究目原创 2021-01-20 21:59:32 · 513 阅读 · 0 评论 -
虚函数和纯虚函数
1.虚函数用于实现类的多态,多态有类的多态和函数的多态,类的多态是虚函数的多态,虚函数是函数名,类型名,参数名都相同的函数,在运行期间动态调用。函数的多态指函数名相同但参数类型或个数不相同,在编译期间完成分配2.纯虚函数,只定义不实现,还有纯虚函数的类为抽象类,不能生成对象...原创 2021-01-20 21:58:02 · 178 阅读 · 0 评论 -
C语言
C语言命名规则由英文字母,下划线开头,是字母,数字,下划线的序列不能跨行书写不能与关键字同名Switch 后的表达式整型和字符型的,但是谭浩强出版的《C程序设计 第二版》说switch后面括弧内“表达式”,ANSI标准允许它为任何类型。变量作用域定义的每个变量只能在一定范围内访问。局部变量在一个函数内部或复合语句内定义的变量全局变量在所有函数外定义的变量。存储类别存储介质:静态存储区,动态存储区生命周期作用域自动局部变量 静态局部变量静态全局变量 非静态全原创 2020-05-15 22:58:41 · 187 阅读 · 0 评论 -
指向函数的指针变量
#include <iostream>using namespace std;一、为什么要有函数指针? 函数与数据项相似,函数也有地址。我们希望在同一个函数中通过使用相同的形参在不同的时间使用产生不同的效果。二、怎么声明一个函数指针? 我们知道:声明指向某种数据类型的指针时,必须指定指针指向的类型。 所以,我们声...原创 2020-03-04 16:49:09 · 289 阅读 · 0 评论 -
编译时分配存储单元
编译时分配存储单元指的是确定了内存分配的方案,你可以理解成编译期间它为你规划好了这些变量的内存使用方案.静态存储方式:变量存储在内存中的静态存储区,在编译时就分配了存储空间.动态存储方式:变量存储在内存中的动态存储区,只有变量被调用时才临时分配内存单元,调用结束,空间释放....原创 2020-03-04 16:46:04 · 1214 阅读 · 0 评论 -
静态局部变量与静态函数作用
有些时候,在函数中是必须要使用static变量的,比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。静态函数的分类C++ 中的静态函数可以分为全局静态函数和类的静态函数。类的静态函数类的静态函数使用类名来访问,在函数体中不能访问非静态成员。全局静态函数全局静态函数与全局普通函数想对应。与全局静态变量和全局变量...原创 2020-03-04 11:17:21 · 900 阅读 · 0 评论 -
友元函数及复制构造函数 以及类型转化
原创 2020-02-22 10:28:54 · 217 阅读 · 0 评论 -
动态链接库bug
原创 2020-02-21 19:37:57 · 103 阅读 · 0 评论 -
stl
三大概念:容器,迭代器,算法。模板是stl实现的基础。迭代器连接起了容器和算法。vecrtor相当于栈,连续存储,但可以任意位置插入删除,使用迭代器可++,因为连续存储可以随机访问。扩充容量时,会把原来的数据删除,拷贝到更大容量的vector里面去。size()和capacity不相同,capacity容量更大。pushback pop时间复杂度为1,但插入删除,需要移动元素,时间复杂度高...原创 2020-02-21 12:12:47 · 77 阅读 · 0 评论 -
构造函数
1.自己定义了构造函数之后,就不会在生成默认构造函数,如果要使用默认构造函数则要classname() =default;2.委托构造函数不仅仅不用重复的定义一个功能,更重要的是修改了一个初始化后其他初始化也就同步更新了,实现代码的一致性3.复制构造函数,系统默认有复制构造函数,是硬拷贝对象的值,简单的把数据成员的值拷贝,但如果出现指针的话,比较危险,多个指针指向同一个内存空间,用一...原创 2020-02-16 22:28:33 · 113 阅读 · 0 评论 -
指针初始化与释放问题
int *p ;free(p);//操作释放p指向的空间,但是p的值随机,会产生释放未知区域的问题//释放的不是p的空间,而是p指向的空间p = nullptr;free(P);p=nullptr;释放后应让p为空,防止再次释放已经释放的空间...原创 2020-02-16 09:56:29 · 551 阅读 · 0 评论 -
基类与派生类中同名成员的关系
派生类中有与基类同名的成员,则优先使用派生类成员,要使用基类成员则要用classname::var从不同基类中继承了同名成员,但派生类没有同名成员,使用则用域名限制...原创 2020-02-14 10:14:50 · 2308 阅读 · 0 评论 -
单链表删除注意及心得
void ClearList(List first,List * lst){ Node *p = nullptr; while(first){ p = first;//思想:a ,b两个数,想要互换操作则是要空的中间变量,把将要覆盖的值复制到空的中间变量 first = first->link; free(p);// ...原创 2020-02-12 16:23:45 · 513 阅读 · 0 评论 -
引用与const
int a = 1;int p = func(a);//func返回值为int& 而接受为int,则会复制一份int &q = func(a);//q与a一样 q是a的引用const int *ptr =new int(10);//同时定义了stack里面的ptr和heap里面的int 10;*ptr = 1000;././指向的内存为常量不可更改int * ...原创 2020-02-11 17:13:38 · 64 阅读 · 0 评论 -
this指针的作用c++
this指针指向当前对象,作用1.通过this调用成员函数和成员变量2.用this区分形参和成员变量3.可以返回*this 意思是返回此对象this不能调用静态成员函数...原创 2020-02-10 18:50:32 · 414 阅读 · 0 评论 -
抽象数据类型
抽象:抽取共同的本质内容,忽略非本质的细节抽象方法:自顶向下,首先考虑问题的最主要方面,再逐步细化,进一步考虑问题细节抽象分类:1.数据抽象 :数据的逻辑结构和存储结构分开考虑 2.过程抽象,使运算的定义和实现分开考虑抽象优点:降低了求解问题的难度,提高程序可靠性数据类型是抽象的一种方式:int 中的数据抽象:值的集合,16二进制补码...原创 2020-02-10 11:34:21 · 184 阅读 · 0 评论 -
c++ find函数代替for循环查找值
template <class> InputIterator find(InputIterator first, InputIterator last, const T& value) { while (first != last && *first != value) { ++first; ...原创 2020-02-10 10:51:14 · 634 阅读 · 0 评论 -
stack and heap
stack:空间小,访问速度快 ,仅次于寄存器,生命周期仅在括号的作用范围内,由系统负责回收内存空间,回收时,先进后出heap:空间大,访问速度次于stack,生命周期长,由用户负责回收内存空间类的创建最好使用堆,空间大,指针操作灵活,但需注意释放空间vector<int> a,当传参数时,为了节省空间可以使用传递引用,但参数改变值,防止改变可以使用const,返回值...原创 2020-02-10 10:38:42 · 166 阅读 · 0 评论