随笔分类 -  C++

摘要:Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the characters in s can be replaced to get t. All occurrenc 阅读全文
posted @ 2016-06-15 14:35 dylqt 阅读(121) 评论(0) 推荐(0)
摘要:字符串类(String),熟悉内存管理与拷贝控制类定义#include //#include using std::cout;using std::cin;class String{ using iterator = char *; friend std::ostream &operat... 阅读全文
posted @ 2015-11-01 20:27 dylqt 阅读(334) 评论(0) 推荐(0)
摘要:写一个复数类,实现基本的运算,目的熟悉封装与数据抽象。类的定义#include #include using namespace std;class Complex{ friend ostream & operator 0) os first = rhs.first; t... 阅读全文
posted @ 2015-11-01 14:00 dylqt 阅读(1970) 评论(0) 推荐(0)
摘要:一、概述1、面向对象程序设计的核心思想:数据抽象、继承和动态绑定数据抽象:将类的接口与实现分离继承:可以定义相似的类型并对相似关系建模动态绑定:可以一定程度上忽略类似类型的区别,而以同一的方式使用它们的对象2、当使用基类的引用(或指针)调用一个虚函数时将发生动态绑定二、虚函数1、基类希望它的派生类各... 阅读全文
posted @ 2015-10-22 21:01 dylqt 阅读(187) 评论(0) 推荐(0)
摘要:一、基本概念1、重载运算符是具有特殊名字的函数:由关键字operator和其他要定义的运算符号共同组成2、重载运算符的参数数量与该运算符作用的运算对象一样多当一个重载的运算符是成员函数时,this会绑定到左侧运算对象,成员运算符函数的显示参数数量比运算对象的数量少一个3、对于一个运算符函数,它要么是... 阅读全文
posted @ 2015-10-16 12:28 dylqt 阅读(252) 评论(0) 推荐(0)
摘要:一、动态内存与智能指针 1、new:在动态内存中为对象分配空间并返回一个指向该对象的指针;delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存 2、两种指针:shared_ptr和unique_ptr;还有一个weak_ptr;都定义在memory中 二、shared_ptr类:智... 阅读全文
posted @ 2015-10-11 18:57 dylqt 阅读(301) 评论(0) 推荐(0)
摘要:一、概述 1、关联容器中的元素是按关键字来保存和访问的;顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的 2、关联容器:map和set map:元素是:关键字-值的对 set:每个元素只包含一个关键字 multimap:关键字可重复出现的map multiset:关键字可重复出现的set unordered_map:用哈希函数组织的map unordered_set:用哈希函数... 阅读全文
posted @ 2015-10-10 18:53 dylqt 阅读(198) 评论(0) 推荐(0)
摘要:一、顺序容器概述:一个容器就是一些特定类型对象的集合1、顺序容器类型:vector、deque、list、forward_list、array、stringstring和vector将元素保存在连续的内存空间,所以用下标访问很快,但是在中间位置添加或删除元素很耗时list和forward_list在... 阅读全文
posted @ 2015-09-27 19:45 dylqt 阅读(210) 评论(0) 推荐(0)
摘要:一、IO类1、iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型2、不能拷贝IO对象,因此不能将形参或返回类型设置为流类型:通常以引用方式传递和方回流3、读写一个IO对象会改变其状态,因此传递和返回的引用不能是const... 阅读全文
posted @ 2015-09-25 16:48 dylqt 阅读(195) 评论(0) 推荐(0)
摘要:一、定义抽象数据类型1、成员函数的声明必须在类的内部,定义可以内部也可以外部;作为接口组成部分的非成员函数,定义和声明都在外部如果类函数定义在类内部,则隐式为inline函数在声明时声明inline,然后在类外定义函数,可以可以构造inline函数inline成员函数应该和类的定义在同一个头文件中2... 阅读全文
posted @ 2015-09-25 15:59 dylqt 阅读(187) 评论(0) 推荐(0)
摘要:一、参数传递1、形参为引用类型时,将绑定到相应的实参上,否则为实参的拷贝;在C++中建议用引用类型代替指针2、const 形参:对于顶层的const,在函数形参中无效,也不能构成重载函数形参中尽量使用常量引用,对于普通引用会有误导,主要是非常量引用会导致函数不能接受常量的类型3、数组形参:传递给函数... 阅读全文
posted @ 2015-09-23 14:59 dylqt 阅读(148) 评论(0) 推荐(0)
摘要:1、if_else语句:else会与离它最近的尚未匹配的if匹配,所以当只使用一半的if时,最好用{}包起来2、switch语句:不要省略break;还有最后default;3、for语句:for语句头中定义的对象,只有在for循环体中可见for(int i = 0; i < n; i++) ... 阅读全文
posted @ 2015-09-22 20:44 dylqt 阅读(148) 评论(0) 推荐(0)
摘要:1、求值顺序:运算对象的求值顺序与优先级和结合律无关i = f(i) + g(i)*h(i) + j(i); //如果这里的各个函数与i无关,则无所谓,如果内部都改变了i则会出错如果几个函数影响同一个对象,则会产生未定义的行为2、当拿不准求值顺序时,用括号来强制组合3、赋值运算符:左侧... 阅读全文
posted @ 2015-09-22 20:33 dylqt 阅读(134) 评论(0) 推荐(0)
摘要:一、string1、包含头文件string; 命名空间std#includeusing std::string2、读取操作时,string对象会自动忽略开头的空白,直到遇到下一个空白如果想要保留空白,使用getline函数:读到换行符为止,但不把换行符写入到string中string s1, s2,... 阅读全文
posted @ 2015-09-21 14:28 dylqt 阅读(913) 评论(0) 推荐(0)
摘要:再次重温下C++ Primer第一章、开始1、GNU编译器使用g++$ g++ -o prog1 prog1.cc2、while(std::cin >> value)使用一个istream作为条件时,如果遇到Eof,或无效输入(不匹配类型)则判断为假,跳出第二章:变量和基本类型一、基本内置类型1、如... 阅读全文
posted @ 2015-09-20 21:41 dylqt 阅读(166) 评论(0) 推荐(0)