2012年3月29日

摘要: 0. 小心设计数据库 第一个技巧也许看来理所当然,但事实上大部分数据库的问题都来自于设计不好的数据库结构。 譬如我曾经遇见过将客户端信息和支付信息储存在同一个数据库列中的例子。对于系统和用数据库的开发者来说,这很糟糕。 新建数据库时,应当将信息储存在不同的表里,采用标准的命名方式,并采用主键。 来源:http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/ 1. 清楚你需要优化的地方 如果你想优化某个查询语句,清楚的知道这个语句的结果是非常有帮助的。采用 ... 阅读全文
posted @ 2012-03-29 09:14 xiaoxxy 阅读(200) 评论(0) 推荐(0)

2012年3月27日

摘要: http://www.cnblogs.com/wuhuacong/archive/2012/03/26/2418786.html 阅读全文
posted @ 2012-03-27 08:49 xiaoxxy 阅读(213) 评论(0) 推荐(0)

2011年9月2日

摘要: * 冒泡排序一轮比较所有相邻数据对,如果顺序不合适就交换,本轮只要发生过交换就再来一轮.#include <iostream>using namespace std;#include <ctime>typedef int T ;void sort(T a[], int n){ bool bSwap = false; do{ bSwap = false; for(int i=1;i<n;i++){ if(a[i] < a[i-1]){ ... 阅读全文
posted @ 2011-09-02 10:25 xiaoxxy 阅读(809) 评论(0) 推荐(0)
摘要: 容器简介STL标准容器类简介标准容器类 说明顺序性容器vector 相当与数组,从后面快速的插入与删除,直接访问任何元素deque 双队列,从前面或后面快速的插入与删除,直接访问任何元素list 双链表,从任何地方快速插入与删除关联容器set 快速查找,不允许重复值multiset 快速查找,允许重复值map 一对一映射,基于关键字快速查找,不允许重复值multimap 一对多映射,基于关键字快速查找,允许重复值容器适配器stack 后进先出queue 先进先出priority_queue 最高优先级元素总是第一个出列所有标准库共有函数默认构造函数 提供容器默认初始化的构造函数。复制构造函数 阅读全文
posted @ 2011-09-02 09:58 xiaoxxy 阅读(784) 评论(0) 推荐(1)

2011年8月30日

摘要: 标准C++的类型转换符使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。1.static_cast用法:static_cast< type-id > ( exdivssion )该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:1)用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。2) 阅读全文
posted @ 2011-08-30 11:04 xiaoxxy 阅读(216) 评论(0) 推荐(0)

2011年8月22日

摘要: 1.c++中string到int的转换1) 在C标准库里面,使用atoi:#include <cstdlib>#include <string>std::string text = "152";int number = std::atoi( text.c_str() );if (errno == ERANGE) //可能是std::errno{//number可能由于过大或过小而不能完全存储}else if (errno == ????)//可能是EINVAL{//不能转换成一个数字}2) 在C++标准库里面,使用stringstream:(stri 阅读全文
posted @ 2011-08-22 23:37 xiaoxxy 阅读(190) 评论(0) 推荐(0)

2011年7月13日

摘要: 迭代器迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值。例如,一个数组索引,也可以认为是一种迭代器。迭代器有各种不同的创建方法。程序可能把迭代器作为一个变量创建。一个STL容器类可能为了使用一个特定类型的数据而创建一个迭代器。作为指针,必须能够使用*操作符类获取数据。你还可以使用其他数学操作符如++。典型的,++操作符用来递增迭代器,以访问容器中的下一个对象。如果迭代器到达了容器中的最后一个元素的后面,则迭代器变成past-the-end值。使用一个past- 阅读全文
posted @ 2011-07-13 15:29 xiaoxxy 阅读(965) 评论(0) 推荐(0)

2011年7月11日

摘要: 1. 字符串字面值的类型是字符常量数组。(const char[])2.C style string:应null字符null结束的字符数组。 eg. char cha3[] = "Hello world"; // null terminator added automatically char *chp = "Hello";// null terminator added automatically3. C++ 通过(const)char *类型来操纵C风格字符串。 阅读全文
posted @ 2011-07-11 12:42 xiaoxxy 阅读(252) 评论(0) 推荐(0)
摘要: 1、数组名不是指针请看程序(本文程序在WIN32平台下编译):1. #include <iostream.h>2. int main(int argc, char* argv[])3. {4. char str[10];5. char *pStr = str;6. cout << sizeof(str) << endl;7. cout << sizeof(pStr) << endl;8. return 0;9. } 证明 数组名不是指针 假设:数组名是指针; 则:pStr和str都是指针; 因为:在WIN32平台下,指针长度为4; 所 阅读全文
posted @ 2011-07-11 10:17 xiaoxxy 阅读(345) 评论(0) 推荐(0)

2011年6月27日

摘要: 摘自《高质量C/C++编程指南》Page 41-42...程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。示例6-5 是一个内存复制函数。在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。void *memcpy(void *pvTo, const void *pvFrom, size_t size){ assert((pvTo != NULL) && ( 阅读全文
posted @ 2011-06-27 14:38 xiaoxxy 阅读(163) 评论(0) 推荐(0)

导航