![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
人生体验
多体验人生
展开
-
某米复盘
1.Inline函数的使用2.选择排序算法3.冯诺伊曼结构的计算机硬件组成?4.假设有一个栈,不可能出栈顺序系列;5.死锁知识;6.避免结构体对齐优化系列;7.进程和线程的关系;8.c中static9.c++中哪些不能被重载;...原创 2020-09-09 09:58:03 · 257 阅读 · 0 评论 -
C++(卡某柯复盘一下)
1.前置操作符和后置操作符区别?2.内联函数与宏定义的区别3.c++中sizeof 与 strlen ,下列哪些说法市正确的?4.关于指针和引用的区别5.c++模板实例化发生在程序编译时候6.一个c++类默认函数有.,且为public属性?7.Int(*func)(int*p,int(*f)(int*)));是否正确8.填空题...原创 2020-09-06 09:25:29 · 252 阅读 · 0 评论 -
C++(深~~复盘)
将昨天涉及到的知识点记录,如果有机会面试,就复习一下;选择:1.双向链表的知识(自然要复习一下,单链表等知识)2.第二个选择考察了一个宏定义(判断一个整数是否是2的次方)3.时间复杂度相关填空:1.传递指针和传值得操作2.数组+指针3.已知先序 中序 求后序:编程:思路就不说了,主要看用到了哪些知识点,我使用得是c++作答;1.用到c++得sort()2.在字符串中找到一个字符,然后替代得操作字符串转数组,数组转字符串的操作,转成vector\arra.原创 2020-08-26 09:51:21 · 291 阅读 · 0 评论 -
C++笔试(一些常用的算法)
慢慢更新:1.有关字符串切分成数组的————————》https://www.cnblogs.com/shuqingstudy/p/9622793.html原创 2020-08-24 13:29:46 · 313 阅读 · 0 评论 -
单例模式与call_once;
单例模式的概念:整个项目中,有某个或者某些特殊的类,只能创建一个属于该类的对象。下面是单例类的实现代码:#include <iostream>using namespace std;class A {private: A() {} static A* m_A;public: static A* GetInstance() { if (m_A == NULL) { m_A = new A(); static B cl; } return原创 2020-08-14 10:55:58 · 211 阅读 · 0 评论 -
2020-08-07 c++ 有关 构造 、拷贝构造函数、 赋值构造;
#include<ctime>#include<cstdlib>#include<iterator>#include<algorithm>#include<iostream>#include<numeric>using namespace std;class A {public: A() :data(0) { cout << "构造函数" << endl; } A(const A&a.原创 2020-08-07 10:05:14 · 101 阅读 · 0 评论 -
树中节点的清除操作
问题来源自 delete 树的节点,而这个树的节点是在 main 函数中申请的属于栈的空间 是不能直接delete 的,那么该怎么解决呢。老师提出了一种想法,每次new 的时候 我都在new中设置一个flag,这样我就可以知道了 哪个是在堆空间的。怎么实现的呢?使用工厂涉及模式(静态成员函数)来定制一下!就是说 你不能new了只能用静态成员函数;...原创 2020-07-25 15:16:56 · 406 阅读 · 0 评论 -
C++ 强制类型转换(复习)
参考博客:https://www.cnblogs.com/larry-xia/p/10325643.html在实际过程中,用到了dynamic_cast: GTreeNode<T>* root() const{ return dynamic_cast<GTreeNode<T>*>(this->m_root); //复习一下强制类型转换的问题 } 返回的tjis->m原创 2020-07-25 13:35:36 · 253 阅读 · 0 评论 -
C++中的类型转换函数(转换构造函数和类型转换函数)
C++中 可以对类 类型 和 普通类型 以及不同的类 类型之间 相互转换。C++中 转化 构造函数 有且仅有一个参数 参数是其他基本类型 或者 其他类类型;工程中 会使用 explicit 来禁止转换构造函数(只能自己强制调用,出了事自己负责);对于类型转换函数 其实就是将类类型 转换为 其他类型(基本类型或者其他类类型);实际工程中还是尽量避免使用类型转换函数,有需要 可以自己写相关的函数,如qt 的X.toint()、X.todouble()........原创 2020-07-15 10:33:50 · 535 阅读 · 0 评论 -
关于函数 返回局部变量的问题
在牛客网刷题的时候,碰到的一个问题,下面有人回答 关于函数内部 不能返回局部变量的问题,有人问到 Int a =1;return a 为什么可以的时候。这个问题我也是理解的不太清晰。看到一个写得不错的博客:https://blog.csdn.net/haiwil/article/details/6691854/...原创 2020-07-12 11:13:12 · 140 阅读 · 0 评论 -
二维指针(指向指针的指针)
参考博主:https://blog.csdn.net/liuweiyuxiang/article/details/84769438看一下 下面的代码:#include<stdio.h>int find(char *s, char src, char *rt)//从s中查询出src字符所在的位置并在rt中返回。{ int i = 0; while (*(s + i)) { if (*(s + i) == src)//只会出现一次满足条件,此时将此地址给*rt,即p {原创 2020-07-11 14:35:05 · 1844 阅读 · 0 评论 -
拷贝构造函数和重载赋值操作符(以共享指针为例子)
//调用了拷贝构造函数的话,对应的指针变量 的值++; SharedPointer(const SharedPointer<T*>& obj) :Pointer<T>(NULL) //这里也应该调用父类拷贝构造函数? { assign(obj); }//赋值本质上是没有增加指针变量的值 因为clear了(换句话---拷贝构造函数大多数情况下是复制,而赋值函数是引用对象)//引用知识别名,所以本质上没有增加 SharedP.原创 2020-07-11 13:35:19 · 421 阅读 · 0 评论 -
数组指针 和 指针数组(c)
1.数组有没有类型?数组类型 由元素类型 + 数组大小 决定(int array[5] 数组的类型是int[5]不是int 哦);像结构体一样 数组也可以定义类型:typedef type (name) [size];2.数组指针数组指针 指向一个数组类型,(数组名是数组元素首地址,但不是一个数组的起始地址,虽然可以通过&数组名 得到数组的起始地址);直接定义数组指针: type(*pointer) [size];3.实例:#include <stdio.h>原创 2020-07-10 12:12:21 · 111 阅读 · 1 评论 -
字符串和数组(c)
c 中其实并没有字符串的概念,但是却可以借助数组(字符串数组) 以及 \0 来实现;c 中 利用 “” 来引用多个字符成为一种特殊的字面量,其直接存储在全局只读区(不可以改变); char ca[] = {'H', 'e', 'l', 'l', 'o'}; char sa[] = {'W', 'o', 'r', 'l', 'd', '\0'}; char ss[] = "Hello world!"; char* str = "Hello world!";...原创 2020-07-09 16:55:46 · 240 阅读 · 0 评论 -
数组和指针(问题汇总+小结)
常量与指针: const int* p1 = &i; int const* p2 = &i; int* const p3 = &i; const int* const p4 = &i; *p1 = 1; // compile error p1 = NULL; // ok *p2 = 2; // compile error p2 = NULL; // ok *p3原创 2020-07-09 10:11:00 · 133 阅读 · 0 评论 -
++i 和 i++ 的问题(经典面试题)
++ i 前置 操作符i++ 后置 操作符这两者 有什么区别呢?从操作符 重载的角度上 后置要用占位符号。从效率上 如果对象是普通类型 那么两者的效率是差不多的; 如果对象是类对象 那么前置效率高,因为 后置在重载的过程中 申请了局部的类对象 这会占用空间 并且会调用类对象的构造函数。...原创 2020-07-07 18:51:13 · 408 阅读 · 0 评论 -
有关类的const 属性
const关键字能够修饰对象,但是修饰对象的成员变量 不允许被改变(通过对象构造函数初始化的不算),另外这个只读变量只是编译阶段的概念 运行的时候 还是有办法改变的;#include <stdio.h>class Test{ int mi;public: Test(int i); Test(const Test& t); int getMi();};Test::Test(int i){ mi = i;}Test::Tes原创 2020-07-07 16:33:28 · 231 阅读 · 0 评论 -
智能指针的问题
将自己的智能指针 应用到链表中:#ifndef LINKLIST_H#define LINKLIST_H#include "List.h"#include "Exception.h"#include "SmartPointer.h"namespace DTLib {template<typename T>class LinkList :public List<T>{protected: struct Node:public Object{原创 2020-07-06 19:03:02 · 206 阅读 · 0 评论 -
25+26 静态单链表 以及相应的问题
首先 为什么会要用静态单链表 单链表它不香吗?主要是因为 单链表 大量的增加 和删除 会导致 堆空间 存在 大量内存水平 还会使 系统速度变慢;借用顺序线性表的思路 不一定要在 堆上 申请空间 可以在其他位置申请任意的空间,所以才有了静态单链表;#ifndef STATICLINKLIST_H#define STATICLINKLIST_H#include "LinkList.h"namespace DTLib {template <typename T,int N &..原创 2020-07-06 15:34:31 · 110 阅读 · 0 评论 -
链表find 操作(23)
mian.cpp#include <iostream>#include"exception.h"#include "Object.h"#include"SmartPointer.h"#include"List.h"#include "SeqList.h"#include "StaticList.h"#include"DynamicList.h"#include "staticarray.h"#include "dynamicarray.h"#include "Link原创 2020-07-06 12:16:26 · 369 阅读 · 0 评论 -
链表测试
List.h#ifndef LIST_H#define LIST_H#include"Object.h"namespace DTLib {template<typename T>class List :public Object{protected: //这里是为了干什么的() List(const List&); List& operator= (const List&);public: List(){}原创 2020-07-04 21:03:22 · 358 阅读 · 0 评论 -
DynamicList测试
#include <iostream>#include"exception.h"#include "Object.h"#include"SmartPointer.h"#include"List.h"#include "SeqList.h"#include "StaticList.h"#include"DynamicList.h"using namespace std;using namespace DTLib;int main(){ DynamicList&l..原创 2020-07-03 21:59:27 · 174 阅读 · 0 评论 -
StaticList测试
#include <iostream>#include"exception.h"#include "Object.h"#include"SmartPointer.h"#include"List.h"#include "SeqList.h"#include "StaticList.h"using namespace std;using namespace DTLib;int main(){ StaticList<int,5> l; for(int..原创 2020-07-03 20:34:10 · 112 阅读 · 0 评论 -
c++顶层父类的创建
#include "Object.h"#include<cstdlib>#include <iostream>using namespace std; namespace DTLib{//throw() 当前函数不会抛出异常说明void* Object::operator new(size_t size)throw(){ //cout<<size<<endl; return malloc(size);}void Object.原创 2020-07-03 16:10:40 · 155 阅读 · 0 评论 -
c++异常类的构建
两段代码:#ifndef EXCEPTION_H#define EXCEPTION_Hnamespace DTLib {#define THROW_EXCEPTION(e,m)(throw e(m,__FILE__,__LINE__))class Exception{protected: char* m_message; char* m_location; void init(const char*message,const char*file,int li原创 2020-07-03 15:29:02 · 203 阅读 · 0 评论 -
c++ 智能指针
来自唐老师的课程 ,由于不提供源码 所以 都是自己手敲的 不对的地方 多担待,在这也只是做个记录!智能指针头文件:#ifndef SMARTPOINTER#define SMARTPOINTERnamespace DTLib {template <typename T>class SmartPointer{protected: T* m_pointer;public: //构造函数 SmartPointer(T* p=NULL){原创 2020-07-03 12:49:15 · 108 阅读 · 0 评论 -
c++面试常见的问题
连接1:https://blog.nowcoder.net/n/f73dc0635ae14a7e8643a9dba9b5783c原创 2020-06-30 20:59:23 · 104 阅读 · 0 评论 -
C++(智能指针类模板)
智能指针是一个类,它可以实现指针的功能,但是它是一个类对象。关于智能指针类模板的其在C++ 中STL、 Boost、QT都是非常重要的问题,它存在的理由是因为C++工程两个棘手的问题,内存泄漏、同一内存多次释放;而智能指针具有(生命周期结束,自动释放内存;一片堆空间只能属于一个智能指针对象,多个对象就会发生所有权转让)例子如下:#include <iostream>...原创 2020-04-08 09:25:29 · 221 阅读 · 0 评论 -
C++(数组类模板)
3小节:1.首先,类模板的参数可以是数值类型的,这个得先知道;它可以用来去定义局部数组;但是数值类型的参数,不能传入变量名、浮点数、类对象;Q:1+2+3+........+N,的高效计算方法:#include <iostream>#include <string>using namespace std;template< typenam...原创 2020-04-07 16:35:17 · 1003 阅读 · 0 评论 -
C++(类模板的深度解析)
2小节:1.Q:是否和函数模板一样支持多个不同类型的参数(答案是肯定的)Q:类模板的特化(部分特化和完全特化),这里是不会发生同名冲突的A:特化是类模板的特殊实现,其本质和类模板一致(比如说当类模板的两个参数是完全一致的)特化可以和模板类的有不同的成员函数。 部分特化如上面的两个参数一致,其实现的依然是类模板。还有一种实现,称为类模板的完全特化。例子实现了关于指针的特化...原创 2020-04-07 15:51:34 · 175 阅读 · 0 评论 -
C++(类模板)
在函数模板库中STL,有许多类似数组类、Stack类...其实现就是模板类;模板类使得,开发人员更多的关注类实现的功能,而不是具体数据元素类型。2次课:1.类比函数模板,模板类也是需要二次编译的;(例子内容思路和上一小节差不多不展示了)2.在工程应用中怎么去编写类模板,就是规范C++看一个头文件:#ifndef _OPERATOR_H_#define _OPER...原创 2020-04-07 09:59:11 · 109 阅读 · 0 评论 -
C++(深入解析模板函数)
3小节课:1.Q:由函数模板产生的函数(相同名字)是不同函数【通过地址证明】;Q:证明编译器对函数模板会有两次编译。A:一次是对函数模板自动寻找类型,并产生函数。第二次编译是对函数进行编译#include <iostream>#include <string>using namespace std;class Test{ Test(...原创 2020-04-07 09:24:09 · 118 阅读 · 0 评论 -
C++继承(1)
继承的实际上是类和类之间的关系,最简单的关系就是组合关系;#include <iostream>#include <string>using namespace std;class Parent{protected: int mv;public: Parent() { mv = 100; } ...原创 2020-03-25 13:49:50 · 96 阅读 · 0 评论 -
C++(操作符重载)
可以通过以下的方式实现:定义全局函数 在类中使用友元函数 使用类成员函数进行重载定义的形式:Test operator + (const Test& obj);实例: 1 #include <iostream> 2 3 using namespace std; 4 5 class Complex 6 { 7 int _...原创 2020-03-25 08:46:21 · 106 阅读 · 0 评论 -
C++(STL相关操作)
博客:https://blog.csdn.net/qq_42322103/article/details/99685797原创 2020-03-24 20:27:06 · 132 阅读 · 0 评论 -
C++(二阶构造函数)
构造函数的回顾类的构造函数用于对象的初始化 构造函数与类同名并且没有返回值 构造函数在对象定义时自动被调用问题:如何判断构造函数的执行结果 在构造函数中执行return语句会发生什么 构造函数执行结束是否意味着对象构造成功实例1:#include <stdio.h>class Test{ int mi; int mj; bool...原创 2020-03-23 21:29:45 · 188 阅读 · 0 评论 -
C++小练习(1)
#include <iostream>using namespace std;double temtran(double a,double b);int main (){cout<<"cout hua du:"<<endl;double hua;cin>>hua;double she;she=temtran(hua, she...原创 2020-03-19 21:22:29 · 153 阅读 · 0 评论 -
C++(有关内联函数的使用)
参考博客:https://blog.csdn.net/zqixiao_09/article/details/50877383原创 2020-03-18 08:26:16 · 67 阅读 · 0 评论 -
C++(:的一个简单的使用)
KNNSearchResultAdaptor(Neighborhood<ScalarT> &results, size_t k, ScalarT max_radius = std::numeric_limits<ScalarT>::max()) : results_(results), k_(k), count_(0...原创 2020-03-17 20:50:16 · 289 阅读 · 0 评论 -
C++模板(1)
在看源代码的时候,多次使用模板,因此很有必要弄熟它。1.函数模板基本的定义:template <typename T> void add(T x, T y){ count << x+y << endl;}如果 我的输入是 两个字符串的话,那么还可以用这个模板码?显然是不行的需要进行模板特化的操作: 2.类模板 te...原创 2020-03-17 20:34:48 · 212 阅读 · 0 评论