02 2009 档案
摘要:1,打印ASCII字符:#include<iostream> #include<iomanip> using namespace std;class table { public: table(int p):i(p) {} void ascii(); protected: int i; }; void table::ascii() { int k = 1; for (; i <= 128; i++) { cout<<setw(4)<<i<<' '<<(char)i; if (!(k%12)) cout
阅读全文
摘要:ORACLEMicrosoft SQL Server2005SYBASEINFORMIXDB2INGERSMicrosoft ACCESSVisual FoxProMYSQLOracleOracle是一个最早商品化的关系型数据库管理系统,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能,特别是支持Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。特别是在
阅读全文
摘要:在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。标准库标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。1、 Dinkumware C++ .
阅读全文
摘要:1.介绍一下STL,详细说明STL如何实现vector。Answer:STL (标准模版库,Standard Template Library.它由容器算法迭代器组成。STL有以下的一些优点:可以方便容易地实现搜索数据或对数据排序等一系列的算法;调试程序时更加安全和方便;即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。vector实质上就是一个动态数组,会根据数据的增加,动态的增加数组空间。2.如果用VC开发程序,常见这么几个错误,C2001,c2005,c2011,这些错误的原因是什么。Answer: 在学习VC++的过程中,遇到的LNK2001错误.
阅读全文
摘要:来自:梦在天涯C++博客(http://www.cppblog.com/mzty/)一 线程1)如果你正在编写C/C++代码,决不应该调用CreateThread。相反,应该使用VisualC++运行期库函数_beginthreadex,退出也应该使用_endthreadex。如果不使用Microsoft的VisualC++编译器,你的编译器供应商有它自己的CreateThred替代函数。不管这个替代函数是什么,你都必须使用。2)因为_beginthreadex和_endthreadex是CRT线程函数,所以必须注意编译选项runtimelibaray的选择,使用MT或MTD。3) _begi
阅读全文
摘要:// 在ptr为根的二叉搜索树中删除x的结点,若删除成功则新结点通过ptr返回template<class E, class K>bool BST<E, K>::Remove(const K x, BSTNode<E, K>*& ptr){ BSTNode<E, K>* tmp; if(ptr !=
阅读全文
摘要:看数据结构书,看到归并排序,便手动实现其代码,发现普通的两路归并代码是错误的,,,,不晓得原因是啥子。。。。 下表面的代码是R.Sedgewick提出的一个改进的两路归并算法代码,经测试正确无误。 void Merge(int L1[], int L2[], int first, int mid,
阅读全文
摘要:#include <deque>#include <vector>using namespace std;int main(){ deque<int> d1; deque<int> d2; deque<int>::iterator it; d1.push_back(3); d1.push_back(4); d2 = d1; for(it = d2.begin(); it != d2.end(); it++) cout<<*it<<endl;/***********************************
阅读全文
摘要:选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最高好的,大多数情况下总是最好的。归并排序:log2(n)*n堆排序:log2(n)*n希尔排序:算法的复杂度为n的1.2次幂这里我没有给出行为的分析,因为这个很简单,我们直接来分析算法:首先我们考虑最理想的情况 1.
阅读全文
摘要:const int DefaultSize = 100;enum KindofStatus {Active, Empty, Deleted};template<class E, class K>class HashTable { public: HashTable(int d, int sz = DefaultSize); ~HashTable() {delete []ht_; delete []info;} HashTable<E, K>& operator = (const HashTable<E, K>& rhs); bool Sear
阅读全文
摘要:1.记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的 Remember what should be remembered, and forget what should be forgotten.Alter what is changeable, and accept what is mutable. 2.能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶 Apart from tears, only time could wear everything away. While feelingis being processed ...
阅读全文
摘要:template<class T>struct SetNode { T data; SetNode<T>* link; SetNode():link(NULL) {} SetNode(const T& x, SetNode<T>* next = NULL):data(x), link(next) {}};template<class T>class LinkedSet { public: LinkedSet() {first_ = last_ = new SetNode<T>;} LinkedSet(LinkedSet<
阅读全文
摘要:#include<assert.h>#include<iostream>using namespace std;const int DefaultSize = 100;class Set{public: Set(int MaxSize = DefaultSize); //构造函数 ~Set() {delete []bitVector;} //析构函数 void MakeEmpty() //置空集合 { for(int i=0; i<MaxSize; i++) { bitVector[i] = 0; } } bool AddMember(const int x);
阅读全文
摘要:第一种最简单:利用STL的set容器#include <set>using namespace std;class IntSet {public: IntSet(int no, int maxval):no_(no), maxval_(maxval) {} int size() {return s_.size();} void generate() { while(s_.size() < no_) { s_.insert((rand() + 100)%maxval_); } } void disp() { set<int>::const_iterator it;
阅读全文
摘要:#include <fstream>#include <string>#include <map>using namespace std;int main(){ map<string, int> m; ifstream ifs("calculate.txt"); if(!ifs) return -1; string str("abcdefghigklmnopqrstuvwxyz"); int i = 0; while(!ifs.eof()) { char c,b; // 此处不可以使用输入流ifs>&
阅读全文
摘要:这是写给初学者看的,虽然有点吹牛,但高人面前不敢班门弄斧,我写的都是来自我的切身经验。) 初学者学习设计模式之类的东西之前,如果能打好基础,将来必能事半功倍。 初学者不太讲究的一个地方,就是不考虑将来要修改代码的可能性。一个计算器写出来,就觉得“好,我会了”,马上丢到一边。 高水平的程序员,写出来的代码都是易于修改的。但是初学者很难有这种机会要修改自己的程序,怎么办呢? 就我个人经验,我觉得锻炼这种思维的一个好办法,就是反反复复的写同样功能的程序。第一个版本写出来之后,稍微总结一下,然后重新写过,并添加一点功能。 反复几次,你就会看到最后写出来的比起第一次写的真是赏心悦目得多。当你对...
阅读全文