- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 C++11:智能指针
智能指针,顾名思义,也就是自动回收内存的指针形式,不用程序员刻意去释放,提高软件开发效率,同时也会提高软件鲁棒性。 C++11一共有4个智能指针,分别为auto_ptr、unique_ptr、shared_ptr、weak_ptr。其中auto_ptr由于存在设计问题,被标记为“已弃用”,将在未来某个C++版本中被移除。本文主要介绍其他三个指针形式。使用前首先包含 这个头文件 1、unique
2015-10-30 10:45:25 2594 1
原创 C++11:多线程与锁
多线程是小型软件开发必然的趋势。C++11将多线程相关操作全部集成到标准库中了,省去了某些坑库的编译,真是大大的方便了软件开发。多线程这个库简单方便实用,下面给出简单的例子 #include #include #include using namespace std; volatile int val; mutex mut; void icrement () { for (int i
2015-10-29 15:55:12 15880
原创 C++11:原子操作
在多线程开发中,为了确保数据安全性,经常需要对数据进行加锁、解锁处理。C++11中引入了原子的概念,简而言之就是访问它时它自动加锁解锁,从而使软件开发更为简便。 原子可谓一个既简单又复杂的概念。简单到访问它时就跟单线程访问一块内存一样简单,复杂的地方在于它的实现涉及到各种内存模型,在优化中经常会遇到。 下面给出一个简单的原子示例: #include #include #include
2015-10-29 15:03:49 5197
原创 C++11:lambda表达式
这个实现的效果类似于匿名函数,不想C++98/03那样一个函数所有人都能调用,不公开不必要的接口,提高程序安全性。 首先来写个最简单的lambda表达式。 []{}; 对,5个字符就成为了一个lambda表达式了,虽然并没卵用,不过至少跨出了一步。这个lambda表达式实际上是精简后的表达式。不加以精简的话,原表达式应该像这样: [](){}; 看起来挺简单的,我也这么觉得
2015-10-29 10:38:04 1009
原创 C++11:变长模板的迭代与递归扩展
迭代的运行效率始终强于递归,递归始终比迭代方便开发。 变长模板属于C++11中比较复杂的技术,在此简单介绍下。 #include using namespace std; template int Sum (Args... args) { return sizeof...(args); } int main (int argc, char* argv []) { cout << Su
2015-10-28 14:47:47 2083
原创 C#扩展方法集合类
扩展方法是C#常用简化代码的手段,原本含义为在系统类的基础上增加自己的方法,比如"xxx{0}xx".format()这种用法,使得软件开发更为简便。在此贴个扩展方法类,用于技术交流
2015-10-26 17:17:45 1409
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人