
C++11
龙舞天涯
这个作者很懒,什么都没留下…
展开
-
从4行代码看右值引用
概述 右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的:int i = 0;int& j = i; 这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,对右值进行绑定的引用就是右值引用,他的语法是这样的A&&,通过双引号来表示绑定类型为A的右值。通过&&我们就可以很方便转载 2016-02-19 11:46:32 · 316 阅读 · 0 评论 -
c++11 输出时间
c++11 输出时间C++11中输出当前时间最直接的方法:std::time_t t2 = std::time(nullptr);cout "%Y-%m-%d %H.%M.%S") "." 这种方法可以输出年月日时分秒,不过却不能输出毫秒,如果要输出毫秒需要用下面的方法:auto n = chrono::system_clock::now();au转载 2016-04-08 15:51:02 · 5432 阅读 · 4 评论 -
C++ 的 get_time 和 put_time 函数
为了快速的时间格式转换. C++ 引进了 get_time 和 put_time 函数#include #include#includeint main(){std::time_t t = std::time(NULL);std::tm tm = *std::localtime(&t);std::cout.imbue(std::locale("CHS"));转载 2016-03-06 16:06:04 · 9583 阅读 · 0 评论 -
(原创)一个简洁通用的调用DLL函数的帮助类
本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁。用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载dll后还要定义一个对应的函数指针类型,再调用GetProcAddress获取函数地址,再转成函数指针,最后调用该函数。下面是调用dll中Max和Get函数的例子。void TestDll(转载 2016-02-19 14:27:07 · 366 阅读 · 0 评论 -
实现一个简单的字符串格式化方法
c#中格式化字符串很简单,比如我们可以这样格式化一个字符串:string str = string.format("test {0}, {1}, {2}, {1}, {0} sample", 1, 2.3, "ok");Console.WriteLine(str);将输出:test 1, 2.3, ok, 2.3, 1 sample这个格式化方法用起来很简单,支持基本转载 2016-02-19 14:07:59 · 1002 阅读 · 0 评论 -
c++11新增的一些便利的算法
c++11新增加了一些便利的算法,这些新增的算法使我们的代码写起来更简洁方便,这里仅仅列举一些常用的新增算法,算是做个总结,更多的新增算法读者可以参考http://en.cppreference.com/w/cpp/algorithm。 算法库新增了三个用于判断的算法all_of、any_of和none_of:templateclass InputIt, class Unar转载 2016-02-19 14:06:08 · 477 阅读 · 0 评论 -
c++11中的日期和时间库
c++11提供了日期时间相关的库chrono,通过chrono相关的库我们可以很方便的处理日期和时间。c++11还提供了字符串的宽窄转换功能,也提供了字符串和数字的相互转换的库。有了这些库提供的便利的工具类,我们能方便的处理日期和时间相关的转换和格式输出。chrono chrono库主要包含了三种类型:时间间隔Duration、时钟Clocks和时间点Time point。转载 2016-02-19 12:05:11 · 7699 阅读 · 0 评论 -
C++11模版元编程的应用
1.概述 关于C++11模板元的基本用法和常用技巧,我在程序员2015年2月B《C++11模版元编程》一文(后称前文)中已经做了详细地介绍,那么C++11模版元编程用来解决什么实际问题呢,在实际工程中又该如何应用呢?本文将侧重介绍C++11模板的一些具体应用,向读者展示模版元编程的具体应用。 我们将展示如何通过C++11模版元来实现function_traits、Vairant转载 2016-02-19 11:59:34 · 1639 阅读 · 0 评论 -
c++11实现一个简单的lexical_cast
boost中有一个lexical_cast可以用统一的方式来做基本类型之间的转换,比如字符串到数字,数字到字符串,bool和字符串及数字之间的相互转换。boost::lexical_cast的用法比较简单:#include #include #include string> #define ERROR_LEXICAL_CAST 1 int main(){转载 2016-02-19 11:57:15 · 2517 阅读 · 1 评论 -
C++11实现一个自动注册的工厂
实现动机 工厂方法是最简单地创建派生类对象的方法,也是很常用的,工厂方法内部使用switch-case根据不同的key去创建不同的派生类对象,下面是一个伪代码。Message* create(int type){ switch (type) { case MSG_PGSTATS: m = new MPGStats;转载 2016-02-19 11:54:59 · 872 阅读 · 0 评论 -
C++开发者都应该使用的10个C++11特性
在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。 auto在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在成了一个类转载 2015-04-12 15:54:52 · 424 阅读 · 0 评论 -
C++11 中的线程、锁和条件变量
线程类std::thread代表一个可执行线程,使用时必须包含头文件。std::thread可以和普通函数,匿名函数和仿函数(一个实现了operator()函数的类)一同使用。另外,它允许向线程函数传递任意数量的参数。12345678910111213转载 2015-04-12 16:54:40 · 602 阅读 · 0 评论 -
C++11~综述
C++11[编辑]C++11,先前被称作C++0x,即ISO/IEC 14882:2011,是C++编程语言的一个标准。它取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998公开于1998年,第二版于2003年更新,分别通称C++98以及C++03,两者差异很小),且已被C++14取代。相比于C++03,C++11标准包含核转载 2016-02-05 10:44:28 · 498 阅读 · 0 评论 -
C++lambda详解~读书笔记
lambda表达式:[cpp] view plain copy[capture_block](parameters) mutable exception_specification->return_type{ body } lambda表达式包含以下部分:捕捉块(catpure block): 指定如何捕捉所在作转载 2016-02-05 10:47:46 · 378 阅读 · 0 评论 -
将数组一次性拷贝到vector的一种方法
主要是利用vector::reserve,vector::resize和memcpy或者assign这几个函数stl容器中size()/resize(), reserve()/capacity()为两对对应接口,vector为保持高速随机访问,采用连续内存分配,如果插入一个新的元素,但是预留空间已经用完(size()==capacity()),此时会重新分配新的内存空间,将原空间的转载 2016-11-03 09:56:55 · 26667 阅读 · 1 评论