目录(?)[-] size_type size_t different_type ptrdiff_t size_t是unsigned类型,用于指明数组长度或下标,它必须是一个正数,std::size_t ptrdiff_t是signed类型,用于存放同一数组中两个指针之间的差距,它可以使负数,std::ptrdiff_t. size_type是unsigned类型,表示容器中元素长度或者下标,vector<; difference_type是signed类型,表示迭代器差距,vector<…
size_t在C语言中就有了. 它是一种"整型"类型,里面保存的是一个整数,就像int, long那样.这种整数用来记录一个大小(size).size_t的全称应该是size type,就是说"一种用来记录大小的数据类型".通常我们用sizeof(XXX)操作,这个操作所得到的结果就是size_t类型.因为size_t类型的数据其实是保存了一个整数,所以它也可以做加减乘除,也可以转化为int并赋值给int类型的变量.类似的还有wchar_t, ptrdiff_t.w…
ptrdiff_t是C/C++标准库中定义的一个与机器相关的数据类型.ptrdiff_t类型变量通常用来保存两个指针减法操作的结果.ptrdiff_t定义在stddef.h(cstddef)这个文件内.ptrdiff_t通常被定义为long int类型. ptrdiff_t定义在C99标准中. ptrdiff_t 标准库类型(library type)ptrdiff_t 与 size_t 类型一样,ptrdiff_t 也是一种与机器相关的类型,在 cstddef 头文件中定义.size_t 是u…
size_t在C语言中就有了.它是一种“整型”类型,里面保存的是一个整数,就像int, long那样.这种整数用来记录一个大小(size).size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”.通常我们用sizeof(XXX)操作,这个操作所得到的结果就是size_t类型.因为size_t类型的数据其实是保存了一个整数,所以它也可以做加减乘除,也可以转化为int并赋值给int类型的变量. 类似的还有wchar_t, ptrdiff_t.wchar_t就是wide ch…
一.特性 1. 这是一种标准库类型 2. 是两个指针相减的结果的类型(因为差值可能为负值,所以是一种带符号类型) 3. 和size_t一样,ptrdiff_t也是一种定义在<cstddef>头文件中的机器相关的类型 4. 示例:ptrdiff_t = end(arr) - begin(arr);…
std::array template < class T, size_t N > class array; Code Example #include <iostream> #include <array> #include <cstring> using namespace std; int main(int argc, char **argv) { array<int, 5> intArr = {1,2,3,4,5}; for(auto i…
vector的源码真是太长了,今天用了一个下午和一个晚上看和注释了前面的一千行左右 p.s.博客园的代码高亮真是太垃圾, 如果想要阅读带注释的源码,推荐粘贴到VS2015里,然后按ctrl+z取消自动格式化,用我格式化好的样子,并在最前面#include <vector>和using namespace std,这样就能带高亮的看我加了注释的代码了 花了不短的时间弄明白了vector奇怪的继承方式,用我自己创造的一种标记记法记了下来 _Vector_val<_Val_types>:…
下列语句定义了5个变量: int count; double sales_price,sum; std::string title; Sales_item bookItem; 每个定义都是以类型说明符开始,如上int.double.std::string.Sales_item都是类型名,其中int和doubleshi是内置类型,std::string是标准库定义的类型(需要#include <string>), Sales_item是自定义类型. ::作用域操作符,含义是右操作符的名字可以在左…
前几天干了一件比较无聊的事儿——抄了一遍C++ STL bitset的源代码,把不懂的宏定义去掉了,发现(暂时)还能用,嘿嘿. #ifndef BITSET_H #define BITSET_H #include <string> #include <stdexcept> #include <iostream> template <size_t Bits> class BitSet { public: typedef bool element_type; t…
返回总册 本章节原文:http://www.cplusplus.com/reference/array/array/ 1. std::array (C++11支持) template < class T, size_t N > class array; 数组类 数组容器是固定长度的序列容器:按照严格的线性顺序,存储一定数量的元素. 数组容器内部并不维护除了元素本身之外的任何数据(甚至不保存自己的size,这是一个编译时就确定的模板参数).数组容器对存储空间的利用效率和普通数组一样高.数组类仅仅…