
C++
文章平均质量分 75
xxiaozr
这个作者很懒,什么都没留下…
展开
-
C++ primer 标准库类型
通过::引用标准库的名字十分麻烦,使用using可以在不需要加前缀namespace_name ::的情况下访问命名空间中的名字 using namespace::name ;c++中,单引号是字符,char,双引号是字符串,string标准库string 类型 #include< string > using std::string;cin>>s ...原创 2017-10-19 15:44:43 · 305 阅读 · 0 评论 -
C++ primer 泛型算法
find函数 使用两个迭代器和一个值调用find函数,检查两个迭代器实参标记范围内的每一个元素,如果找到返回指向该元素的迭代器,否则返回第二个迭代器实参,表示查找失败 由于find是基于迭代器的,可在任意容器中使用相同的find函数查找值,由于指针的行为和容器内的迭代器一样,也可以使用find来搜索数组 泛型算法本身从不执行容器本身的操作,只是单独的依赖迭代器和迭代器操作实现。算法基于迭代器原创 2018-01-17 15:55:52 · 282 阅读 · 0 评论 -
Leetcode练习
Two Sum: 思路1:先看第一个元素和后面的元素有无和为所需整数,在看第二个元素和后面元素,一次类推,直到最后两个元素 思路2:所需整数减去第一个元素后,在数组中find是否有相等的值,减去第二个元素后Palindrome Number: 思路1:将 int 转换为 string ,使用下标操作 string,依次判断开头和结尾的数字是否相同 思路2:将 int 翻转过来,判断和原...原创 2018-02-28 20:34:49 · 242 阅读 · 0 评论 -
C++ 递归
C++可以调用自己,这种功能叫做递归递归函数必须定义一个终止条件,否则函数就会一直递归下去,这意味着函数会一直调用自身直到程序栈耗尽,这叫无限递归错误包含一个递归调用的递归void recurs(argumentlist){ statements1 if(test) recurs(arguments) statemnts2}只要 if 语句为 true,...原创 2018-03-06 16:10:40 · 399 阅读 · 0 评论 -
数据结构
时间复杂度:在规模为 n 的所有输入中,选择执行时间最长者作为 T(n),并以 T(n)度量该算法的时间复杂度 将 T(n)定义为算法执行基本操作的总次数,即 T(n)决定于组成算法的所有语句各自的执行次数,及其中所含基本操作的数目空间复杂度:算法所需要的存储空间的大小,一般不对其专门考察,因为任何一个算法的任何一次运算过程中消耗的存储空间,都不会多于其间所执行基本操作的累计次数,所以时间复杂度是...原创 2018-03-13 17:21:20 · 193 阅读 · 0 评论 -
数据结构:链表
链表(linked list) 是一种典型的动态存储结构。其中的数据,分散为一系列称为节点(node)的单位,节点之间通过指针相互索引和访问。为了引入新节点和删除原有的节点,只需要在局部,调整少量相关的节点之间的指针。节点定义struct ListNode(){ int val; ListNode* next; ListNode(int x):val(x),next(NUL...原创 2018-03-06 16:46:17 · 441 阅读 · 0 评论 -
动态规划
动态规划是自底向下的方式解决各问题,是递归的过程贪心算法是自顶向下的方法,以迭代的方法相继作出贪心的选择,每一次贪心的选择都将所求的问题简化为规模更小的子问题 ...原创 2018-03-29 23:55:52 · 201 阅读 · 0 评论 -
火车进出栈问题
一个栈的进栈序列为 1,2,3...n,有多少种不同的出栈序列呢?首先假设 F(n) 为序列数量为 n 的出栈序列情况假定最后出栈的元素为 k ,则 k取不同的值的情况是相互独立的,也就是求出每种 k 最后的出栈情况后可以用加法原理,由于 k 最后出栈,则在 k 入栈之前所有比他小的都出栈了,这里的情况为 F(k-1),所有比 k 大的元素都在 k 之前出栈,为 F(n-k)种情况,两种出栈是相...原创 2018-05-15 11:22:07 · 3483 阅读 · 1 评论 -
C++ primer 面向对象编程
面向对象编程有三个基本概念:数据抽象,继承和动态绑定继承 通过继承类可以定义这样的类,对类型之间的关系建模,共享公共的东西,仅仅特化本质上不同的东西。 将因继承而相关联的类称为一个继承层次,其中一个类称为根,其他类间接或者直接继承根类 c++中,基类必须指出希望派生类重写哪些函数,定义为 virtual,基类希望派生类继承的函数不能定义为 virtual动态绑定 我们可以编写程序使...原创 2018-01-24 16:25:41 · 198 阅读 · 0 评论 -
C++ primer 关联容器
关联容器通过键(key)来存储和读取元素,顺序容器通过位置顺序存储和访问元素 两个基本的关联容器类型是set和map 关联容器共享大部分顺序容器的操作,不提供 front , push_front , pop_front , back ,push_back , pop_back 操作map类型 map类型是键值对的集合,可以理解为关联数组,可使用键作为下标来获取一个值 使用map对原创 2018-01-16 15:01:09 · 211 阅读 · 0 评论 -
C++ primer 重载操作符与转换
当定义一个新类型的时候,需要显式或者隐式的指定复制,赋值和撤销该类型的对象时会发生什么,这是通过:复制构造函数,赋值操作符和析构函数实现的 复制构造函数,赋值操作符和析构函数总称为复制控制,编译器自动实现这些操作,类也可以定义自己的版本重载操作符的定义 重载操作符具有特殊名称,保留字 operator 后接需定义的操作符号 声明了一个加好操作符,用于将两个Sales_item 对象相原创 2018-01-23 10:04:33 · 234 阅读 · 0 评论 -
C++ primer表达式
操作符的含义—该操作符执行什么操作以及操作结果的类型—取决于操作数的类型 算数操作符 关系操作符和逻辑操作符 不应该串接使用关系操作符位操作符 建议使用unsigned整型操作数自增自减操作符的前置和后置操作 前置返回修改后的值,后置返回修改前的值复合使用解引用和自增操作 * iter++ 等价于 * (iter++)箭头操作符 —> 假如有一个指向类型的指针(或者原创 2017-11-09 17:07:57 · 259 阅读 · 0 评论 -
C++ primer 基本语言
变量和基本类型c++定义了一组表示整数,浮点数,单个字符串和布尔值的算数类型 还有一种特殊的void 类型 表示整数,字符和布尔值的算术类型统称为整型通常将8位的块作为一个字节,大多数计算机将存储器的每一个字节和一个称为地址的数关联起来除了bool类型外,整型可以是带符号的和无符号的 整形int,long,short 默认都是带符号型的 定义无符号型的必须指定为unsigned long…原创 2017-09-17 17:05:25 · 271 阅读 · 0 评论 -
C++ primer 数组和指针
int a = 5; int*p; p=&a;// p指针,等于 a 的地址,指针的本质是一个地址 *p;//指针的解引用,即对地址的解引用,返回 a 的值 &p;//取指针变量的地址,即用来存放指针变量的内存地址 void* &a;//将a的地址转化为指针,即一个指针 M 指向 a 的地址 void** &a//将a的地址转化为指针,这个指针指向的值为...原创 2017-10-20 17:28:58 · 415 阅读 · 0 评论 -
C++ primer 语句
for语句头定义的任何对象只限制在for循环体里可见 for省略condition,等效于循环条件永远为true,循环体内就必须包含一个break或者return语句。 同理变量值的增加如果省略也需要增加break或者return结束循环,或者在循环体内安排语句修改变量值。 for语句头的定义处只能有一句话,因此如果要定义多个对象,必须是同一个类型do-while语句 do st原创 2017-11-13 16:35:42 · 240 阅读 · 0 评论 -
C++ primer 快速入门
第一章std::cout(标准输出对象),必须在开头引入iostream头文件,iostream库处理输入输出流 eg:std::coutsystem("pause");运行完程序后按任意键继续std::endl;endl是操纵符,具有输出换行的效果,并且刷新缓冲区。>;输入操作符,每个操作符实力都接受两个操作符,左操作数必须是ostream,右操作数是要输出的值。**输出原创 2016-11-14 20:40:18 · 230 阅读 · 0 评论 -
C++ primer 函数
函数的定义 由函数名和一组操作数类型唯一地表示。函数的操作数就是形参,在圆括号内声明,如果形参较多就是形参表,逗号隔开。每一个函数都有一个相关联的返回类型。函数的调用 调用操作符,一对圆括号,实现函数的调用。调用操作符的操作数就是函数名和一组实参。 函数调用主要做了两件事:用对应的实参初始化函数的形参,并将控制权转移给被调用函数。 函数体是一个作用域,在函数体内定义的变量是局部变量,只...原创 2017-11-13 17:35:54 · 383 阅读 · 0 评论 -
C++ primer 标准IO库
要同时支持不同类型不同大小的字节流,标准库使用继承来定义一组面向对象类。通过继承关联起来的类型共享共同的接口。当一个类继承另一个类的时候这两个类可以使用相同的操作。 父类叫做基类,继承而来的叫派生类。 IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,sstream定义用于读写存储在内存中的string对象。 在fsteam和ss原创 2017-11-23 22:27:24 · 325 阅读 · 0 评论 -
C++ primer 顺序容器
最常用的顺序容器类型: vector类型 容器容纳特定类型对象的集合。标准库vector类型是一种顺序容器,将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。 标准库定义了三种顺序容器类型:vector , list , deque (double ended queue). 容器只定义了少量的操作,大多数额外的操作由算法库提供。 容器类型的操作集合形成了以下类型:一...原创 2017-12-07 16:58:52 · 295 阅读 · 0 评论 -
C++ primer 类
类定义了数据成员和函数成员,数据成员用于存储与该类型的对象相关联的状态,而函数成员则负责赋予数据意义的操作类的定义和声明 类就是定义了一个新的类型和新作用域 每个类可以没有成员,也可以定义多个成员,成员可以是数据,函数或类型别名 在public中定义的成员可以被使用该类型的所有代码访问,在private部分定义的成员可被其他类成员访问 所有的成员都必须在类内部声明,一旦类定义完成,就没原创 2018-01-22 10:42:38 · 562 阅读 · 0 评论 -
排序算法
1.冒泡排序 每一次相邻的两个数比较,大数沉底,小数上升,完成一趟,可以让最小的数到达顶端,之后对剩下的【0,i-1】进行相同的排序过程,直到最后排序完成void BetterBubble(int[] Array,int Size){ int i,j,tmp; for(i=0;i<Size-1;i++){ for(j=0;j<Size-1...原创 2018-08-15 00:33:14 · 219 阅读 · 0 评论