C++11 <thread> 详解

在C++11中 <thread>有一个thread类和this_thread的命名空间,std::thread 在 <thread>头文件中声明,因此使用 std::thread::thread时需要包含 <thread>头文件。

成员有两种类型,一种是id,即该线程的id,另一种是native_handle_type,native的句柄类型。

Read More

URI/URL区别

URIs, URLs, and URNs

首先,URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位符,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。而URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。
因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailto、news 和 isbn URI 都是 URN 的示例。

Read More

C++11 thread 学习

C++11 自2011年发布以来已经快6年了,之前一直没怎么关注,虽然书上经常看,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧,和大家共勉。
相信 Linux 程序员都用过 -pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大的提高,所以作为一名 C++ 程序员,熟悉 C++11 的多线程编程方式还是很有益处的。

Read More

C++ STL

STL简介

STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。
STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的13个头文件:
algorithm、deque、functional、iterator、vector、list、map、memory、numeric、queue、set、stack和utility

Read More

C++格式化输出流

有时ACM或者程序需要在输入输出时有一些特定格式,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符(有的书中称为操纵符)
需要注意的是:以下函数包含在头文件iomanip。(顺便说一下从Linux GCC 4.8.0开始加入头文件bits/stdc++.h,虽然不是标准头文件,但这个头文件着实顺手,平时用的头文件都在里面)

Read More