
c++
Claroja
这个作者很懒,什么都没留下…
展开
-
C++ wchar_t
参考:https://www.cnblogs.com/yudongbo/articles/2775422.htmlhttps://www.zhihu.com/question/284005748/answer/436340558原创 2020-01-18 22:52:49 · 963 阅读 · 0 评论 -
C++ vector
头文件<vector>单端,动态Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。vector容量管理:超出部分并不是在原有空间后追加,(因为无法保证原空间之后尚有可配置的空间),而是申请更大的空间,然后将原数据拷贝新空间,并释放原空间。所以一旦引起空间的重新配置,指向原vector的所有迭代器就都失效了(既是指针失效).vector构造...原创 2019-04-02 21:55:13 · 485 阅读 · 0 评论 -
C++ string容器
头文件<string>Char是一个指针,String是一个类,string封装了char,管理这个字符串,是一个char*型的容器,不用考虑内存释放和越界.构造方法方法描述string();空白字符string(const string& str);拷贝初始化string(const char* s);数组字符赋值string...原创 2019-04-02 21:53:38 · 1535 阅读 · 0 评论 -
C++ STL
STL(Standard Template Library,标准模板库)容器分为:容器(container) 算法(algorithm) 迭代器(iterator)原创 2019-04-02 21:52:57 · 346 阅读 · 0 评论 -
C++ 标准IO
对象含义对应设备c语言中相应的标准文件cin标准输入流键盘stdincout标准输出流屏幕stdoutcerr标准错误流屏幕stderrclog标准错误流屏幕stderrcout是console output的缩写,cout不是C++预定义的关键字,它是ostream流类的对象,在iostream中定义。cerr,clog流...原创 2019-04-02 21:51:43 · 459 阅读 · 0 评论 -
C++ 输入和输出IO
标准I/O设备的输入输出.比如键盘和显示器文件I/O硬盘的输入输出.比如电脑里的文本文件串I/O内存指定空间的输入输出.修改字符串.类描述调用iostream标准输入输出iostreamfstream文件输入输出fstreamstrstream串输入输出strstream...原创 2019-04-02 21:51:03 · 450 阅读 · 0 评论 -
C++ 异常
也可以编写自己的类异常#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;int fn(int a, int b){ if (b == 0)//函数的编写者要自己把所有的出错可能性都考虑进去 { throw 1; //抛出int类型异常 //throw 3.14; //...原创 2019-04-02 21:49:32 · 366 阅读 · 0 评论 -
C++ 类型转换
静态转换(static_cast)1.在继承中对父子类进行转换(指针或引用的转换)1)上转是安全的2)下转是不安全的2.基本数据类型之间的转换.(详细看转换规则)动态转换(dynamic_cast)1)在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;2)在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cas...原创 2019-04-02 21:48:30 · 453 阅读 · 0 评论 -
C++ 泛型编程-函数模板
和java泛型类似逻辑相同,类型不同模板函数template<class T>模板声明必须紧跟着函数,只能对一个函数起作用编译器会对函数模板进行两次编译,在声明的地方对模板代码本身进行编译,在调用的地方对参数替换后的代码进行编译。调用时1.自动类型推导,必须有参数类型才可以推导(不能是两个不同类型来代替T),既不可以做隐式转换2.显示指定类型#define _CRT_S...原创 2019-04-02 21:47:27 · 415 阅读 · 0 评论 -
C++ 多态
c++支持编译时多态(静态多态)和运行时多态(动态多态),运算符重载和函数重载就是编译时多态,派生类和虚函数实现运行时多态。virtual关键字加在要多态的函数上父类的引用或者指针执行之类的对象重写必须返回值,参数个数,类型,顺序都相同.Animal * animal = new Cat;animal.speak();有纯虚函数的父类,无法被实例化,这样的类被称为抽象类.纯虚函数必...原创 2019-04-02 21:46:46 · 371 阅读 · 0 评论 -
C++ 对象运算符重载
对象运算符重载原创 2019-04-02 21:45:08 · 483 阅读 · 0 评论 -
C++ 泛型编程-类模板
参考文献:https://www.cnblogs.com/cxq0017/p/6076856.html原创 2019-04-02 21:44:03 · 369 阅读 · 0 评论 -
C++ 友元函数
1.friend关键字只出现在声明处2.其他类、类成员函数、全局函数都可声明为友元3.友元函数不是类的成员,不带this指针4.友元函数可访问对象任意成员属性,包括私有属性...原创 2019-04-02 21:43:21 · 456 阅读 · 0 评论 -
C++ 常函数常对象
C++ 常函数常对象原创 2019-04-02 21:42:33 · 429 阅读 · 0 评论 -
C++ this指针
1.c++中的非静态数据成员直接内含在类对象中,就像c struct一样。2.成员函数(member function)虽然内含在class声明之内,却不出现在对象中。C++类对象中的变量和函数是分开存储。应为不同的对象,共用一份成员函数,所以C++通过this指针来执行函数所调用的对象,this指针是C++实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每一个对象...原创 2019-04-02 21:41:50 · 380 阅读 · 0 评论 -
C++ deque
vector是只开后端口,在头部插入数据效率很低.deque是双向开口,头尾都可以插入元素vector实现原理:(1) 申请更大空间 (2)原数据复制新空间 (3)释放原空间deque实现原理:deque使用map作为容器(指针数组),每个指针指向缓冲区(另一段连续的内存空间)构造函数描述deque deqT;默认构造形式deque(beg, end);...原创 2019-04-02 21:55:36 · 646 阅读 · 0 评论 -
C++ stack
stack符合先进后出(First In Last Out,FILO),只有栈顶的元素可以被取用,所以不提供便利功能.构造方法描述stack stkT;默认构造形式:stack(const stack &stk);拷贝构造函数方法描述stack& operator=(const stack &stk);重载等号操...原创 2019-04-02 21:56:03 · 406 阅读 · 0 评论 -
C++ queue
queue符合先进后出(First In Last Out,FILO),不提供遍历功能构造函数方法描述queue queT;默认构造形式:queue(const queue &que);拷贝构造函数API方法描述push(elem);队尾添加元素pop();队头移除元素back();返回队尾元素front...原创 2019-04-02 21:56:26 · 1696 阅读 · 1 评论 -
C++ linux系统api
int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);pathname 文件名flags:O_RDONLY只读,O_WRONLY只写,O_RDWR读写O_APPEND追加O_CREAT创建O_EXCL 如果文件存在则会...原创 2019-04-23 22:45:34 · 1203 阅读 · 0 评论 -
C++ GBD调试
编译appgcc func.c main.c -o app -I ./ -g启动appgbd app在gdb中启动程序rundebug模式start停留在main函数,分布调试n(ext)下一条指令s(tep)下一条指令,可以进入函数内部,库函数不能进入q(uit) 退出gdb设置参数set查看代码list设置断点b(reak)b 10b main:10b ...原创 2019-04-23 22:44:17 · 910 阅读 · 0 评论 -
C++ 头文件
使用预处理器技术(preprocessor)当预处理器看到#include时,就会用指定的头文件的内容代替#include#ifndef变量未定义时为真define名字设定为预处理变量#endif是对应#ifndef#ifndef AA#define AA#include #endif...原创 2019-04-02 22:02:27 · 479 阅读 · 0 评论 -
C++ 变量和常量
变量常量参考文献:c语言 const原创 2019-04-02 22:01:58 · 598 阅读 · 0 评论 -
C++ 复合类型
复合类型(compound type)引用(reference) &d给值起一个别名指针(pointer)原创 2019-04-02 22:01:33 · 525 阅读 · 0 评论 -
C++ 数据类型
算术类型:整形(integral type,包含字符和布尔)和浮点型类型含义size字节有效值bool布尔类型未定义未定义char字符8位1字节short短整形16位2字节int整形long长整形float单精度32位4字节7位double双精度64位8字节16位原创 2019-04-02 22:01:07 · 626 阅读 · 0 评论 -
C++ 常用算法
遍历一个迭代器for_each(iterator beg, iterator end, _callback);遍历两个迭代器,并将结果输入到第三个迭代器transform(iterator beg1, iterator end1, iterator beg2, _callbakc)查找算法find(iterator beg, iterator end, value)有条件查找find...原创 2019-04-02 22:00:37 · 1102 阅读 · 0 评论 -
C++ 仿函数
仿函数是(functor)类似函数的对象,重载了"()“操作符,使得类对象可以像函数那样调用1.重载”()"像函数一样使用类2.本质是类,而不是函数3.内部可以记录状态4.可以作为类型与模板配合使用#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Fn{public:...原创 2019-04-02 22:00:12 · 413 阅读 · 0 评论 -
C++ 适配器
为函数添加额外的参数,类似于python的修饰符原创 2019-04-02 21:59:25 · 370 阅读 · 0 评论 -
C++ 内建函数对象
头文件<functional>算数类函数对象关系运算类函数对象逻辑运算类仿函数原创 2019-04-02 21:58:54 · 828 阅读 · 0 评论 -
C++ map
有key值和value值,不允许有相同的key值multimap的key值可以重复map和multimap底层都是红黑树构造方法描述map<T1, T2> mapTT;map默认构造函数:map(const map &mp);拷贝构造函数API方法描述[key]查找元素map& operator=...原创 2019-04-02 21:58:09 · 420 阅读 · 0 评论 -
C++ pair
对组原创 2019-04-02 21:57:44 · 406 阅读 · 0 评论 -
C++ set
只有key值,自动根据key值排序,不允许有相同的键值只读容器,改变元素会破坏set的组织multiset允许key值重复.set和multiset底层是红黑树,平衡二叉树的一种平衡二叉树(红黑树)1.任何节点的值都大于左树所有值,小于右树所有值,因此总根节点一直往左走,到尽头得到最小值(插入排序也是如此)2.平衡()左树和右树的深度差值不大于1构造函数方法说明...原创 2019-04-02 21:57:19 · 412 阅读 · 0 评论 -
C++ list
链表(非连续,非顺序存储结构,由数据域和指针域构成).list是循环双向链表1.动态分配内存,不会额外申请空间2.插入删除快3.额外的指针域耗费比较大构造函数方法描述list lstT;默认构造形式:list(beg,end);构造函数将[beg, end)区间中的元素拷贝。list(n,elem);构造函数将n个elem拷贝给。list(c...原创 2019-04-02 21:56:57 · 550 阅读 · 0 评论 -
C++ 静态成员变量&静态成员函数
static修饰的就是静态的成员函数或者静态成员变量,管这个类创建了多少个对象,静态成员只有一个拷贝,这个拷贝被所有属于这个类的对象共享.也就是说所有的对象的该静态变量和函数都指向同一块内存区域.#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Person{public:...原创 2019-04-02 21:41:13 · 628 阅读 · 0 评论 -
C++ new&delete
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Person{public: Person() { cout << "无参构造" << endl; } Person(int a) { cout << "有参构造" <...原创 2019-04-02 21:40:34 · 424 阅读 · 0 评论 -
C++ 构造函数和析构函数
编译器会默认的添加构造函数和析构函数操作#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Person{public://构造和析构函数必须写在public下才能调用 //构造函数,与类名相同,没有返回值 ,不写void,可以重载 //构造函数由编译器自动调用,而不是手...原创 2019-04-02 21:39:53 · 408 阅读 · 0 评论 -
c++ 类和对象的内存管理
c++类对象中的成员变量和成员函数是分开存储的 成员变量: 普通成员变量:存储在对象中,与struct变量有相同的内存布局和字节对齐方式 静态成员变量:存储于全局数据区中 成员函数:存储于代码段中c++中的类与对象本质是通过c语言的指针实现的.新建一个对象,就有这个对象就有一个指针,指向类的方法....原创 2018-03-08 15:04:48 · 961 阅读 · 0 评论 -
c++ static
把一个类的成员说明为static时,这个类无论有多少个对象被创建,这些对象共享这个static成员. 改变一个对象的static成员变量时,其他的属于这个类的对象的该static成员变量也会跟着改变.#include "iostream"using namespace std;class st{public: int getC() { return...原创 2018-03-08 14:25:38 · 455 阅读 · 0 评论 -
c++ new delete
分配基础类型//c语言int *p = (int *)malloc(sizeof(int)); free(p);//c++,先初始化,再赋值int *p2 = new int; //相当于上面的*p2 = 1;delete p2;//c++,初始化,并赋值int *p3 = new int(1);delete p3;分配数组//cint *p = (int *)...原创 2018-03-08 14:12:44 · 533 阅读 · 0 评论 -
c ++ 枚举
枚举原创 2018-02-27 17:17:27 · 766 阅读 · 0 评论 -
c++ 结构体与共用体
结构体共用体原创 2018-02-27 17:12:27 · 745 阅读 · 0 评论