随笔分类 - C++
这是一个初学者从入门到进阶的学习记录。
摘要:1.C++正则 正则是一种规则,它用来匹配(进而捕获、替换)字符串。这种规则需要“模式”、“字符串”这两样东西,“模式”根据正则规则,来处理“字符串”。这种规则被许多语言支持,C++11以后才支持正则。 #### 具有特殊意义的元字符 \:\字符能够改变字符原本的含义 ^:^字符指示字符串的头,且要
阅读全文
摘要:1.C++异常处理机制 int division(int a,int b) { if (b == 0) { throw 0; } return a / b; } void print(int a, int b) { try { division(a, b); } catch (int) { //根据
阅读全文
摘要:1.流的概念:若干个字节组成的一个字节序列,代表信息从源到目的流动 流类体系:用类实现的所有流操作 IO流 标准输入输出流 字符流 文件流 ios istream ostream >iostream strstream ifstream ofsteram >fstream /* No.1 输入流和输
阅读全文
摘要:1.函数包装器 /* 1.包含functional 2.作用: 把函数指针,函数对象,函数等,包装成一个对象 3.function<type> object(functionObject); type:返回值类型(参数类型) */ int Max(int a, int b) { return a >
阅读全文
摘要:1.shared_ptr class MM { public: MM() {} MM(string name, int age) :name(name), age(age) {} void print() { cout << name << "\t" << age << endl; } ~MM()
阅读全文
摘要:1.排序算法 sort: 基本排序 stable_sort: 相对排序 merge: 归并排序 inplace_merge: 改变原容器的归并 nth_element: 关键字排序 partition: 分类处理,满足谓词,放在左边,不满足放在右边 stable_partition: 保持原容器的相
阅读全文
摘要:1.查找算法 find: 区间查找 find_first_of: 查找区间第一次出现 adjacent_find: 查找第一次重复的数 search: 子序列查找 search_n: 子序列查找出现次数 count: 区间统计 count_if: 条件统计 equal: 比较 有序查找: binar
阅读全文
摘要:1.lambda表达式 /* Lambda表达式: 匿名函数 最终得到的结果是一个函数指针 产生函数指针的同时,对应的函数也已经定义好 No.1 Lambda表达式的组成部分 [捕获方式](函数参数) mutable exception ->函数返回值{ 函数体;} 捕获方式: []: 不捕获任何变
阅读全文
摘要:1.仿函数 /* 仿函数:让类的对象模仿函数调用的行为(函数名()) //对象() 关键点在于重载() 仿函数一般来说用来做比较准则 充当for_each的参数 No.1 自己写仿函数 */ class Sum { public: int operator()(const int a, const
阅读全文
摘要:1.迭代器 迭代器:可以说是一种访问容器的一个桥梁,类中类的一个对象,去模仿指针的行为 迭代器分类: 按照定义方式分类: + 正向迭代器: + 容器名::iterator iter; + begin(); + end(); + 常量正向迭代器 + 容器名::const_iterator citer
阅读全文
摘要:1.initalizer_list(列表) template <class _Ty> class MyVector { public: MyVector(int size) :curSize(0) { dataMemory = new _Ty[size]; } MyVector(initialize
阅读全文
摘要:1.tuple /* 可变参模板类 参数个数、数据类型不限定 */ void testCreateTuple() { //正常创建 tuple<int, string, double, float, int> tup1; tuple<int, string, string, double> tup2
阅读全文
摘要:1.map(映射) /* map:映射,一种对应关系 自带排序(按照键去排序) 键唯一,相同键采用最后一次插入的数据,覆盖的方式去处理 存储的数据是: 数对类型(pair) */ void testMap() { map<int, string>str; //1.pair对象插入 str.inser
阅读全文
摘要:1.set /* set:集合 1.1 不允许出现重复的数据,插入重复的只会存在一个 1.2 插入数据后,数据排好序,默认情况是从从小到大 No.1 set基本操作 No.2 处理自定义类型 */ void testSet() { set<string> s; s.insert("data1");
阅读全文
摘要:1.优先队列((priority_queue) void testCreatePriority_queue() { //最完整创建方式 //1.存储的数据类型 int //2.底层实现的容器类型 vector<int> //3.排序准则 less<int> greater<int> priority
阅读全文
摘要:1.双向队列(deque) void testDeque() { deque<int> data; data.push_back(1); data.push_front(2); data.push_back(3); cout << data.size() << endl; while (!data.
阅读全文
摘要:1.队列 先进先出 /* push(); pop(); front(); size(); empty(); */ using namespace std; void testQueue() { queue<string> strQue; strQue.push("Love"); strQue.pus
阅读全文
摘要:1.stack 后进先出 /* 1.基本操作 push(); pop(); top(); size(); empty(); */ void testStack() { stack<int> s; for (int i = 0; i < 10; i++) { s.push(i); } cout <<
阅读全文
摘要:1.List class MM { public: MM(string name, int age) :name(name), age(age) {} string getName() const{ return name; } int getAge() const{ return age; } p
阅读全文
摘要:1.vector void testCreateVector() { vector<int> vi; //构造时没有标长度不能直接用下表法访问 //vi[0]=1; vi = { 1,2,3,4 }; vector<string> vs = { "Hello","Hi","loveyou" }; v
阅读全文
浙公网安备 33010602011771号