C++
杨葳
这个作者很懒,什么都没留下…
展开
-
effective cpp24, 46需要类型转换时请为模板定义非成员函数
一般看来,令class支持隐式转换是不好的实现。但在混合运算中更适合支持混合运算。 class Rational { public: Rational(int numerator = 0, int denominator = 1); int numberator() const; int denominator() const; private : ..原创 2017-08-19 11:09:58 · 238 阅读 · 0 评论 -
const优点全面总结
effective c++条款02中提到尽量以const替换#define。换句话理解,const保留了宏的好处,丢弃了宏的坏处。变量 宏的好处 1. 宏基本**不被编译器**看见,直接经过**预处理器**的处理基本就行了。 2. 不用分配内存空间,而是直接保存到**字符表**。 3. 保护不被改变的数原创 2017-07-05 19:26:01 · 662 阅读 · 0 评论 -
动态规划问题总结
动态规划在笔试中是经常遇到的,本文尝试总结基本类型 1. subSet 例子:背包问题、n个数中是否存在k个数的和等于m 递归: case1:包含当前项 case2:不包含当前项 两者是或的关系原创 2017-05-31 20:37:04 · 236 阅读 · 0 评论 -
堆排序
堆排序过程 1. 建立堆 2. 对堆排序 统计大文件中数据单词次数前k的问题中需要应用。 注意 : 1. 堆的建立过程是从底自上; 2. 堆的排序过程是从上自下,其过程很好理解,在建立堆的过程中要从底部向上调整元素,保证底部子节点小于父节点,如果先从父节点开始,则不能保证此性质;排序过程则需要将最大元素(最小元素)排除出去,所以是堆顶开始,从上自下调翻译 2017-05-31 13:08:03 · 166 阅读 · 0 评论 -
二叉树的垂直遍历
对一棵树的垂直遍历 http://www.geeksforgeeks.org/print-binary-tree-vertical-order/借助 hashMap实现#include <iostream>#include <map>#include <algorithm>#include <vector>using namespace std;// A node of binary翻译 2017-05-19 16:27:26 · 1636 阅读 · 0 评论 -
sort/map/unordered_map自定义类型如何构造比较函数
sort: 定义比较函数 / 定义比较类,用比较类定义对象 map: 比较类 / 比较函数在自定义类中提供 unordered_map: hash类的定义、 ==运算符重载 注:/代表或, 、代表并 比较函数bool compare(const) const比较类的定义 struct cmp { bool operator()(const ) const };原创 2017-05-19 12:13:00 · 2618 阅读 · 0 评论 -
C++ 字符串处理
字符串中使用最多的是字符串分割,其中包括输入getline后,对输入数据进行分割,以及字符串间的查找和分割。下面补上极其有效的分割方法。string line = "1 2 3 4 56";size_t begin = 0;while (begin != string::npos) { begin = line.find_first_not_of(' ', begin); siz原创 2017-05-24 12:24:51 · 245 阅读 · 0 评论 -
MyString
#include <iostream>#include <assert.h>using namespace std;class MyString{public: MyString() { data = new char[1]; data[0] = '\0'; length = 0; } MyString(const MyS原创 2017-03-25 22:51:02 · 290 阅读 · 0 评论 -
通配符、正则表达式的回溯解法
bool recursion_util(string& text, string& pattern, int pos1, int pos2){ if (pos2 == pattern.size()) return pos1 == text.size(); if (pattern.at(pos2) != '*') { if (pos1 < text.s原创 2017-03-31 21:59:14 · 253 阅读 · 0 评论 -
c++ sort cmp
bool myComp(const vector<int>& a, const vector<int>& b){ /*if (a.at(1) != b.at(1)) return a.at(1) < b.at(1); else if (a.at(2) != b.at(2)) return a.at(2) < b.at(2); return fa原创 2017-04-08 11:15:24 · 873 阅读 · 0 评论 -
正则表达式和通配符
正则表达式用于文本中查找 通配符则用于应用中Shell正则表达式:动态规划实现bool regular_regex(string text, string pattern){ string new_pattern; int index = 0; bool isFirst = true; for (int i = 0; i < pattern.size(); i++原创 2017-03-28 12:24:02 · 290 阅读 · 0 评论 -
深度探索C++模型
C++对象内存分配情况在面试中经常被问到,在《深度探索C++对象模型》一书中有详细介绍,本文将简单介绍C++对象在的内存分配情况。 参考:http://www.cnblogs.com/skynet/p/3343726.html原创 2017-10-15 21:57:05 · 367 阅读 · 0 评论