代码改变世界

随笔分类 -  C++ && 数据结构与算法

【算法很难很重要】1.五大常用算法之动态规划

2012-08-13 09:02 by ATP_, 1734 阅读, 收藏,
摘要: 用map实现数字分离View Code #include<iostream> #include<map> #include<string> using namespace std; int main() { map<char,int> m; m['0'] = 0; m['1'] = 1; m['2'] = 2; m['3'] = 3; m['4'] = 4; m['5'] = 5; m['6'] = 6; m['7'] 阅读全文

【语法回顾】C++STL:关联容器

2012-07-19 11:10 by ATP_, 1386 阅读, 收藏,
摘要: 一.关联容器的定义 关联容器支持通过键来搞笑的查找和读取元素。两个基本的关联容器类型是map和set:map的元素以key-value对的形式组织:键用做元素在map中的索引,而值则表示所存储和读取的元素。set仅包含一个键,并有效的支持关于某个键是否存在的查询。关联容器还包括multimap,multiset,这2个关联容器中键的值不唯一。 二.pair类型 之所以先介绍pair类型,是因为map就相当于是p... 阅读全文

【语法回顾】C++中的输入控制:cin,getline,cin.getline,gets(转)

2012-07-14 08:49 by ATP_, 692 阅读, 收藏,
摘要: C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1、cin 2、cin.get()3、cin.getline()4、getline()5、gets()6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include <io 阅读全文

【语法回顾】C++STL:顺序容器

2012-07-12 12:05 by ATP_, 1738 阅读, 收藏,
摘要: 一.顺序容器的定义 顺序容器,它将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素,这就是顺序容器。顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定的。 标准库定义来三种顺序容器:vector,list,deque(双端队列读音”deck”) 三种顺序容器的适配器:stack,queue,priority_queue 相关头文件 #include<vector> #include<list> #include<deque> #include<stack> #include<q... 阅读全文

【语法回顾】C++STL:string类型

2012-07-11 08:35 by ATP_, 2582 阅读, 收藏,
摘要: 一.string对象的定义和初始化 1.string标准库支持4种构造函数 string s1; //默认构造函数,s1为空串 string s1(s2); //将s2初始化为s1的副本 string s3("value"); //将s3初始化为一个字符串字面值副本 string s4(n, 'c'); //将s4初始化为字符'c'的n个副本其他构造方式: string( str, n ) //被初始化为str所指向的数组的前n个元素的副本 string( str+pos, n) //从s... 阅读全文

【慢慢学算法】:qsort()与sort的用法(收藏)

2012-05-13 11:45 by ATP_, 1487 阅读, 收藏,
摘要: sort()函数是C++中的排序函数其头文件为:#include<algorithm>头文件;qsort()是C中的排序函数,其头文件为:#include<stdlib.h> qsort()----六类qsort排序方法 qsort函数很好用,但有时不太会用比如按结构体一级排序、二级排序、字符串排序等。函数原型:void qsort(void *base, size_t nelem, size_t width, int (*fcmp)(const void*,const void *))输入参数:Base:待排序的数组nelem:数组元数的个数(... 阅读全文

【动手敲代码】:循环队列(C++)

2012-05-06 18:58 by ATP_, 469 阅读, 收藏,
摘要: #include<iostream> template <class T> class Queue { private: T rear; T front; int maxSize; T* head; public: Queue(int size):rear(0),front(0),maxSize(size) { head = new T(size); if(!head) std::cout << "memoryAllocationError!" << std::endl; } ... 阅读全文

【动手敲代码】:顺序队列(C++)

2012-05-06 18:58 by ATP_, 482 阅读, 收藏,
摘要: #include<iostream> template <class T> class Queue { private: T rear; T front; int maxSize; T* head; public: Queue(int size):rear(0),front(0),maxSize(size) { head = new T(size); if(!head) std::cout << "memoryAllocationError!" << std::endl; } ... 阅读全文

【动手敲代码】:顺序栈(C++)

2012-05-06 18:57 by ATP_, 381 阅读, 收藏,
摘要: 1 #include<iostream> 2 3 template<class T> 4 class Stack 5 { 6 private: 7 int top; 8 T* base; 9 int size;10 T* elements;11 public:12 Stack<T>(int sz):size(sz),top(-1)13 {14 base = new T[sz];15 if(!base)16 std::cout << "momoryAllocationError" << std::... 阅读全文

【动手敲代码】:链式栈(C++)

2012-04-28 12:40 by ATP_, 372 阅读, 收藏,
摘要: 1 #include<iostream> 2 template<class T> class LinkStack; 3 4 template<class T> class StackNode 5 { 6 private: 7 T data; 8 StackNode<T>* next; 9 public:10 friend class LinkStack<T>;11 StackNode(T item, StackNode<T>* n = NULL):data(item),next(n){}12 T GetData(){ re 阅读全文

【动手敲代码】:双向链表(C++)

2012-04-26 22:24 by ATP_, 447 阅读, 收藏,
摘要: 1 #include<iostream> 2 3 template<class T> class Bi_Linklist; 4 5 template<class T> 6 class Node 7 { 8 private: 9 Node<T> *pre; 10 Node<T> *next; 11 T data; 12 public: 13 Node():pre(NULL),next(NULL){} 14 Node(const T item , Node<T> *p = NULL, Node<T> *n = NU 阅读全文

【语法回顾】:C++中的:模板类,友元函数,符号重载

2012-04-26 17:55 by ATP_, 1170 阅读, 收藏,
摘要: 最近准备开搞算法竞赛,所以先回顾一下C++语法,发现之前看过的忘记了好多,一些交集性的东西居然看不懂了,赶紧恶补下。 由于是回顾,只对重点做些凌乱的记载。 还是喜欢以分析一套完整的代码来进行学习,翻翻资料,敲敲注释,不错不错:#include<iostream>#include<cstdlib>using namespace std;enum ErrorType{ invalidArraySize, memoryAllocationError, indexOutOfRange};char *errorMsg[] = { "Invalid array size& 阅读全文