c++11提供了日期时间相关的库chrono,通过chrono相关的库我们可以很方便的处理日期和时间。c++11还提供了字符串的宽窄转换功能,也提供了字符串和数字的相互转换的库。有了这些库提供的便利的工具类,我们能方便的处理日期和时间相关的转换和格式输出。
C++11 中的日期和时间库
C++ Boost中的新版本Timer的使用
cpu_timer类和auto_cpu_timer类用于精确计时,有elapsed、start、is_stopped等方法。使用跨平台的变量(如下),能够实现纳秒级的时间度量。(精度比较高)。
C++ Boost中的Timer的使用
程序开发者都会面临一个共同的问题,即写出高质量的代码完成特定的功能。评价代码质量的一个重要标准就是算法的执行效率,也就是算法的执行时间。为了可靠的提高程序的执行效率,首先要知道执行程序所消耗的时间,然后找出可行的方案对程序进行优化。
C++ 中测试程序运行时间的方法
GetTickCount()函数
原理: GetTickCount()是获取系统启动后的时间间隔。通过进入函数开始定时,到退出函数结束定时,从而可以判断出函数的执行时间(单位ms),这种时间也并非是函数或者算法的真实执行时间,因为在函数和算法线程不可能一直占用CPU,对于所有判断执行时间的函数都是一样,不过基本上已经很准确,可以通过查询进行定时。注意:GetTickCount()精确度有限,跟CPU有关,一般精确度在16ms左右,最精确也不会精确过10ms。
C# 给picturebox添加滚动条
1.将picturebox放在panel上;
2.将panel的AutoScroll设置为ture;
3.将picturebox的SizeMode设置为AutoSize;
C++ 数值转换库 Boost.lexical_cast
Boost组件lexical_cast
字符串→数值
经常看到有人询问如何在字符串类型和数值类型间进行转换的问题,也看到了许多不同的答案。下面先讨论一下从字符串类型到数值类型的转换。
- 如何将字符串"123"转换为int类型整数123?答案是,用标准C的库函数atoi;
- 如果要转换为long类型呢?标准C的库函数atol;
- 如何将"123.12"转换为double类型呢?标准C的库函数atod;
- 如果要转换为long double类型呢?标准C的库函数atold;
- ……
后来有朋友开始使用标准库中的string类,问这个如何转换为数值?有朋友答曰,请先转换为const char*。我很佩服作答者有数学家的思维:把陌生的问题转化成熟悉的问题。(曾经有一则笑话,好事者问数学家:知道如何烧水吗?答:知道。把水壶加满水,点火烧。又问:如果水壶里已经有水了呢?答:先倒掉,就转化为我熟悉的问题了……)
C++ 格式化输出库 Boost.Format
Boost.Format 库可以作为定义在文件 cstdio 中的函数 std::printf() 的替代。 std::printf() 函数最初出现在 C 标准中,提供格式化数据输出功能, 但是它既不是类型安全的有不能扩展。 因此在 C++ 应用中, Boost.Format 库通常是数据格式化输出的上佳之选。
C++11 创建和使用unique_ptr
unique_ptr 不共享它的指针。它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一 unique_ptr,并且原始 unique_ptr 不再拥有此资源。我们建议你将对象限制为由一个所有者所有,因为多个所有权会使程序逻辑变得复杂。因此,当需要智能指针用于纯 C++ 对象时,可使用 unique_ptr,而当构造 unique_ptr 时,可使用make_unique Helper 函数。
C++ STATIC用法
static的作用主要有两种:
第一个作用是限定作用域;第二个作用是保持变量内容持久化;
c语言中static的用法
全局静态变量
用法:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。
C++ 强大的背后
原文链接:http://www.cnblogs.com/miloyip/archive/2010/09/17/behind_cplusplus.html