随笔分类 - c++学习基础代码
摘要:转自:http://www.cnblogs.com/alexqdh/archive/2011/06/09/2075713.html C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_
阅读全文
摘要:#include <iostream> using namespace std; class CTmp{ public: //friend const CTmp operator++(CTmp& tmp); //friend const CTmp operator++(CTmp& tmp, int)
阅读全文
摘要:以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错。今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.end()是变化的,因此就引入了错误的可能性。 erase的函数原型有两种形式: iterator e
阅读全文
摘要:#include <iostream> using namespace std; /* *<<直接插入排序>> * 为了实现N个数的排序,将后面N-1个数依次插入到前面已排好的子序列中, *假定刚开始第1个数是一个已排好序的子序列。经过N-1趟就能得到一个有序序列。 *****时间复杂度:最好情况O
阅读全文
摘要:链接: http://www.cnblogs.com/hanxi/archive/2012/10/12/2721540.html 理论来自:简明现代魔法 在程序设计相关领域,堆(Heap)的概念主要涉及到两个方面: 一种数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆)。 垃圾收集存储
阅读全文
摘要:一、堆的定义 堆的定义如下:n个关键字序列L[n]成为堆,当且仅当该序列满足: ①L(i) <= L(2i)且L(i) <= L(2i+1) 或者 ②L(i) >= L(2i)且L(i) >= L(2i+1) 其中i属于[1, n/2]。 满足第①种情况的堆称为小根堆(小顶堆),满足第②种情况的堆称
阅读全文
摘要:堆排序算法( heapsort ) 2. make_heap() 2. push_heap() 3. pop_heap 4. sort_heap() #include <iostream> #include <algorithm> #include <vector> using namespace
阅读全文
摘要:1. nth_element( b, n, e ) 对n位置的元素进行比较,大的放后面,小的放前面,n必须是迭代器指向输入的元素; 2. nth_element(b, n, e, p ) 3.对比:partition() 算法 #include <iostream> #include <algori
阅读全文
摘要:1. partial_sort( b, se, e ) 2. partial_sort( b, se, e, p ) 3. partial_sort_copy( sb, se, db, de ) 4. partial_sort_copy( sb, se, db, de, p ) #include <
阅读全文
摘要:1. sort( b, e) 2. sort( b, e, p ) 3. stable_sort( b, e ) 4. stable_sort( b, e, p ) 注意: 不适用于list容器,list有成员函数sort #include <iostream> #include <algorith
阅读全文
摘要:1. random_shuffle() 随机打乱 2. partition() 不稳定的 3. stable_partition() 稳定的 #include <iostream> #include <algorithm> #include <vector> #include <iterator>
阅读全文
摘要:1. next_permutation() 原始数据为升序 2. prev_permutation() 原始数据为降序 #include <iostream> #include <algorithm> #include <vector> using namespace std; int main(
阅读全文
摘要:1. reverse() 2. reverse_copy() 3. rotate() 4. rotate_copy() #include <iostream> #include <algorithm> #include <vector> #include <iterator> using names
阅读全文
摘要:1. unique( b, e ) //删除连续的重复的数据。留下唯一 2. unique( b, e, p ) 3. unique_copy( b1, e1, b2 ) 4. unique_copy( b1, e1, b2, p ) 注意: 1.应该有一个unique_if(), 但是没有 2.应
阅读全文
摘要:1. remove_copy() 2. remove_copy_if() #include <iostream> #include <algorithm> #include <list> #include <vector> #include <set> #include <iterator> usi
阅读全文
摘要:1. remove() 2. remove_if() 注意: 1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素 2.返回新的逻辑终点 #include <iostream> #include <algorithm> #include <list> #include <vector> u
阅读全文
摘要:1. replace( b, e, ov, nv ) 2. replace_if( b, e, p, v ) 3.replace_copy( b1, e1, b2, ov, nv ) 4.replace_copy_if(b1, e1, b2, p, v ) #include <iostream> #
阅读全文
摘要:1. fill(b, e, v) 2. fill_n(b, n, v) 3.generate(b, e, p ) 4.generate_n(b, n, p) #include <iostream> #include <algorithm> #include <vector> #include <de
阅读全文
摘要:1. swap_ranges(b, e, b2) 2.注意:下列两种方法也是交换算法 (1) 容器的swap() 成员函数 (2) 赋值操作 #include <iostream> #include <algorithm> #include <vector> #include <deque> usi
阅读全文
摘要:1. for_each() 速度快 不灵活(只能对一个容器的某个区间进行操作) 2. transform() 速度慢 非常灵活(可以对多个容器的多个区间操作) #include <iostream> #include <algorithm> #include <vector> using names
阅读全文

浙公网安备 33010602011771号