导航

2016年6月25日

摘要: 其中用到了简单包装的Semaphore和CriticalSection 如下: 阅读全文

posted @ 2016-06-25 22:23 codetask 阅读(302) 评论(0) 推荐(0)

摘要: C++11 的 lambda 表达式规范如下: [ capture ] ( params ) mutable exception attribute -> ret { body } (1) [ capture ] ( params ) -> ret { body } (2) [ capture ] 阅读全文

posted @ 2016-06-25 22:19 codetask 阅读(324) 评论(0) 推荐(0)

摘要: class A { public: A(); //默认构造 A( A& a ); //copy构造 const A& operator=( const A& a ); //赋值操作符 }; //调用测试 A a1; /... 阅读全文

posted @ 2016-06-25 21:49 codetask 阅读(503) 评论(0) 推荐(0)

摘要: ////一个简单的防止内存泄露的例子//void test() { //使用RAII的特性管理资源 //当智能指针unique_ptr被销毁时,它指向的对象也将被销毁 //这里test函数返回后 p将自动销毁 //unique_ptr p( new int[200] ); //直接生成资源 //test函数返回后 p不能被正常销毁,就会造成资源泄... 阅读全文

posted @ 2016-06-25 21:38 codetask 阅读(390) 评论(0) 推荐(0)

摘要: // 进行一轮快排并返回当前的中间数 int getMiddle( int* arr, int low, int high ) { auto swaparr = [&]( int i, int j ) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; }; if( hig... 阅读全文

posted @ 2016-06-25 21:34 codetask 阅读(352) 评论(0) 推荐(0)

2016年6月21日

摘要: 1 //这里使用c++的thread创建了5个线程,并支持传递多个参数 2 void thread1(int aa,int bb) 3 { 4 cout << aa << bb << endl; 5 } 6 7 void testthread() 8 { 9 int ithreads[] = {1,2,3,4,5}; 10 for(auto i: it... 阅读全文

posted @ 2016-06-21 00:38 codetask 阅读(129) 评论(0) 推荐(0)

2016年6月20日

摘要: #include int main() { std::function fn[100]; for( int i = 0; i fn[100] 等于缩写了下面的: typedef int (*TypeFn)(); TypeFn fn[100]; 阅读全文

posted @ 2016-06-20 23:32 codetask 阅读(124) 评论(0) 推荐(0)

摘要: //错误! //返回的是local对象,但已被销毁 const string& getDog() { string dog = string( "Budi" ); return dog; } //不推荐,应尽量避免使用new //返回申请在heap上的对象 const string& getDog() { string* dog = new string( "Bu... 阅读全文

posted @ 2016-06-20 23:21 codetask 阅读(232) 评论(0) 推荐(0)

摘要: 1 // 比如 2 // 3 // 这段实现了重载操作符 String + char* 的操作 4 5 const char* operator+(const char* str) { 6 int len = 0; 7 if( str ) 8 len = strlen(str); 9 if(pTmpString) 10 ... 阅读全文

posted @ 2016-06-20 23:18 codetask 阅读(175) 评论(0) 推荐(0)

摘要: PYTHON的Range类非常好用,所以用C++来简单实现下: 之后测试下: 阅读全文

posted @ 2016-06-20 16:49 codetask 阅读(645) 评论(0) 推荐(0)