归并排序原理即将两个有序的数组合并成一个,归并排序有两种方法:递归和循环。
/*递归方法*/void Merge(int TR1[], int TR2[], int low, int mid, int high)
{//将TR2归并入TR1中
int pos1 = low;
int pos2 = mid + 1;
for (int i = low; i <= high; ++i)
...
分类:
编程语言 时间:
2015-06-29 20:35:46
阅读次数:
107
1.包装线程对象class task : public std::tr1::enable_shared_from_this{public: task():exit_(false){} task( const task & ) = delete; ~task(){} task & operator =...
分类:
编程语言 时间:
2015-06-25 15:19:04
阅读次数:
188
别让异常逃离析构函数为什么别让异常逃离析构函数,异常逃离析构函数会引发哪些问题?很明显,异常会带来不明确的行为。
如下代码:
当容器销毁时会调用析构函数,这时如果析构函数抛出异常,容器中剩余的元素还是应该被销毁,否则可能会有内存泄露。这时如果继续销毁其他元素,又出现异常的话,会同时存在两个异常。两个异常同时存在会导致不明确的行为。使用标准库的其他容器或TR1的任何容器或者array,也会遇到类似...
分类:
编程语言 时间:
2015-06-22 11:09:29
阅读次数:
232
为什么要用智能指针?
我们知道在C++中,资源管理是个头疼的问题。资源管理最常做的就是内存管理。而指针用起来如果忘记归还,就会导致内存泄露。
比如:class Oneclass{};
int func(){
Oneclass* one=new Oneclass;
if(!one)return 1;
delete one;
return 0;
}可见,上面代码中,我...
分类:
编程语言 时间:
2015-06-02 09:29:59
阅读次数:
138
tr1::shared_ptr和tr1::auto_ptr都提供一个get成员函数,返回智能指针内部的原始指针:
)operator*和operator->隐式转换至底部指针:
注意:...
分类:
其他好文 时间:
2015-05-19 22:38:07
阅读次数:
166
正則表達式是经常使用的一种方法。比較有名的类库是boost,可是这个类库在重了。全部就像找一些轻量级的类库。后来发现准标准的库tr1已经非常方便了,微软vs2008 sp1 以上版本号都支持了。全部就直接用它非常方便了。并且支持unicode编码,还是非常方便的。样例:#include #incl....
分类:
编程语言 时间:
2015-05-10 12:36:34
阅读次数:
109
条款12: 以对象管理资源 两种只能指针: std:auto_ptr当使用copy操作室,原先的智能指针指向为nullstd:tr1:share_ptr spi();当可以多个指向同样的地址,但是当delete是会进行根据指向改地址的指针数量是否要delete这块内存条款13 在资源管理中小心cop...
分类:
编程语言 时间:
2015-05-09 23:23:57
阅读次数:
227
《Effective C++》第九章:杂项讨论
不要轻忽编译器的警告。严肃对待编译器发出的警告信息。努力在最高警告级别下争取无警告。也不要过度依赖编译器给出的警告信息,不同的编译器给出的警告信息是不一样的,甚至给出警告的点也不一样。
让自己熟悉包括TR1在内的标准程序库。
让自己熟悉Boost。
C++不想Java和C#那样,语言本身就带有很强大的库,所以外部的程序库对于编写C++程序至关重要。俗话...
分类:
编程语言 时间:
2015-04-24 10:42:02
阅读次数:
140
最后这三个条款属于杂项。条款53告诉我们不要忽略警告,虽然程序可以编译通过,但是要搞明白警告信息。条款54和条款55讲解C++的库,一个是TR1文档,一个是Boost。现在C++11标准已定,且有编译器支持。Boost库一些内容已经标准化到C++11,与其学习Boost,不如熟悉C++11中的Boost库内容。...
分类:
编程语言 时间:
2015-03-27 23:57:56
阅读次数:
465
virtual函数的替代方案包括NVI手法及Strategy设计模式的多种手法。NVI手法自身是一个特殊形式的Template Method设计模式。将机能从成员函数移到class外部函数,带来的一个缺点是,非成员函数无法访问class的non-public成员。tr1::function对象的行为...
分类:
编程语言 时间:
2015-03-20 12:33:46
阅读次数:
184