C++11 中的日期和时间库

c++11提供了日期时间相关的库chrono,通过chrono相关的库我们可以很方便的处理日期和时间。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