随笔分类 -  c++stl

如何打印查看c++stack<..>中的内容(不使用pop,top)
摘要:how to print out all elements in a std::stack or std::queue conveniently 方法1:copy到临时 方法2:stackoverflow: 方法2:stackoverflow: I've written a snippet to d 阅读全文

posted @ 2018-05-23 17:19 CreatorKou 阅读(1336) 评论(0) 推荐(0)

c++运算符定义为成员函数还是非成员函数
摘要:=,[],->,()运算符必须是成员,赋值,下标,箭头访问,调用; 复合赋值运算符一般应该是成员; 改变对象状态的运算符或与给定类型密切相关的运算符例如递增减,解引用应该是成员; 具有对称性的运算符可能转换任意一端的运算对象,例如==,算术相等性关系,位运算等等 **当把运算符定义为成员函数时,左侧 阅读全文

posted @ 2018-04-20 14:25 CreatorKou 阅读(1151) 评论(0) 推荐(0)

c++重载运算符位置的限制
摘要:C++规定有四个运算符 =, ->, [], ()不可以是全局域中的重载(即不能重载为友员函数),这是为什么呢?现在先说说赋值运算符“=”的重载C++规定赋值运算符“=”只能重载为类的非静态成员函数,而不可以重载为类的友元函数。不能重载为类的静态成员应该比较容易理解,因为静态成员函数是属于整个类的, 阅读全文

posted @ 2018-04-20 09:18 CreatorKou 阅读(206) 评论(0) 推荐(0)

为什么operator<<运算符重载一定要为友元函数
摘要:一、 为什么operator<<运算符重载一定要为友元函数呢? 如果是重载双目操作符(即为类的成员函数),就只要设置一个参数作为右侧运算量,而左侧运算量就是对象本身。。。。。。而 >> 或<< 左侧运算量是 cin或cout 而不是对象本身,所以不满足后面一点。。。。。。。。就只能申明为友元函数了。 阅读全文

posted @ 2018-04-20 09:10 CreatorKou 阅读(1694) 评论(0) 推荐(0)

vector之reserve的坑
摘要:reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。 resize是改变容器的大小,并且创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operato 阅读全文

posted @ 2018-04-19 15:48 CreatorKou 阅读(374) 评论(0) 推荐(0)

使用set和vector去重(copy函数)
摘要:mark 阅读全文

posted @ 2018-04-09 23:23 CreatorKou 阅读(253) 评论(0) 推荐(0)

vector元素去重uninque函数,erase函数
摘要:题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去 阅读全文

posted @ 2018-04-09 23:22 CreatorKou 阅读(431) 评论(0) 推荐(0)

copy与iterator头文件
摘要:mark 阅读全文

posted @ 2018-04-09 23:22 CreatorKou 阅读(128) 评论(0) 推荐(0)

构造树求解逆波兰表达式
摘要:注意,由于中缀式的运算规则是从左到右,所以遍历left~right时从right遍历到left,先找到的运算符构造的节点必然有较低优先级的输出 将构造的树后序遍历得到逆波兰表达式: 阅读全文

posted @ 2018-04-03 00:50 CreatorKou 阅读(266) 评论(0) 推荐(0)

c++ vector注意事项
摘要:1.vector<int> vec(10)和vector<int> vec{10} 不同,前者vec有10个元素0,后者vec有一个元素10 2.vec.clear()和swap() 3.vec元素置为0,std::fill(vec.begin(),vec.end(),0) 4.错误示例: vect 阅读全文

posted @ 2018-03-29 00:13 CreatorKou 阅读(211) 评论(0) 推荐(0)

c++ vector能否在类定义中圆括号/大括号初始化
摘要:Why can in-class initializers only use = or {}?In-class initializers (C++11 feature) must be enclosed in curly braces or follow a = sign. They may not 阅读全文

posted @ 2018-03-29 00:06 CreatorKou 阅读(1625) 评论(0) 推荐(0)

稀疏矩阵的加减乘除算法
摘要:参考数据结构严蔚敏稀疏矩阵乘法 稀疏矩阵加法: 阅读全文

posted @ 2018-03-29 00:01 CreatorKou 阅读(1204) 评论(0) 推荐(0)

剑指offer04:用两个栈实现队列
摘要:1 class Solution 2 { 3 public: 4 void push(int node) { 5 stack1.push(node); 6 } 7 8 int pop() { 9 int pdata = 0; 10 if(!stack2.empty()){ 11 p... 阅读全文

posted @ 2018-03-26 21:22 CreatorKou 阅读(123) 评论(0) 推荐(0)

c++ allocator,deque,stack用法
摘要:参考cpp reference网站 1,std::allocator template<class T> class allocator; Allocators are classes that define memory models to be used by some parts of the 阅读全文

posted @ 2018-03-26 21:12 CreatorKou 阅读(155) 评论(0) 推荐(0)

导航