[Boost基础]容器数据结构——array定长数组
2013-01-16 20:54
441 查看
容器
Array:STL风格封装下的定长数组Multi_array:多维数组的容器和适配器
Bimap:双向map列,使用boost.bimap,你可以创建两个类型都可作为键值的关联容器。
Circular_buffer:一个STL兼容的容器,也被广泛称为环缓冲区或循环缓冲区。
Dynamic_bitset:表示位的集合,提供operator[]访问每一位的值,并提供所有能够应用于内置整型的逐位操作符(eg:&,<<)。集合中位的格式通过构造函数的参数在运行时指定。
Any:安全,泛型的容器,包含不同类型的值
Compressed_pair:针对pair当中空成员做了一些优化
Multi_index:提供对可重复键值STL兼容容器的存取接口
Tuple:容易的定义可返回多个值的函数
Variant:安全的,泛型的,基于栈的,不同于联合容器。
小demo
#pragma once #include <boost/array.hpp> #include <string> #include <iostream> #include <conio.h> using namespace std; /* 作为普通C++定长数组的替代品,它提供了数组包含的所有特性,并且提供了C++标准库容器一致的接口。并且由于内部数据结构就是普通数组,因此完全可以用来替代普通数组。 模板类array本质上是一个静态数组的包装,因此他不完全符合标准容器的定义,不具有标准容器的很多功能,虽然他在很多方面很像标准容器 array的能力缺陷主要是: 没有构造函数,不能指定大小和初始值(只能用模板参数指定大小) 没有push_back()和push_front(),因为它不能动态增长 不能搭配插入迭代器适配器功能,因为它不能动态增长 因此,array的功能相当有限,只能应用在已知数组大小,或者对运行速度要求很高的场合。如果需要可动态变动容量的数组,则使用std::vector或者boost::scoped_array. */ void test0() { //定义长度为3的int数组,=》等价于int a[3]; boost::array<int,3> a; //数组元素赋值 a[0]=1; a.at(1)=2; *a.rbegin()=3; int *p=a.data();//获取数组指针 或 int *p=a.c_array(); //遍历数组 for (int i=0;i<a.size();i++) { printf("%d %d\n",a[i],p[i]); //1 1 //2 2 //3 3 } //初始化 boost::array<string,3> str={"zhong","guo","ren"}; boost::array<string,3>::iterator it=str.begin(); for (;it!=str.end();it++) { cout<<*it<<endl; //zhong,guo,ren } } void test(char t) { cout<<"press key====="<<t<<endl; switch (t) { case '0':test0();break; // case '1':test1();break; // case '2':test2();break; // case '3':test3();break; // case '4':test4();break; case 27: case 'q':exit(0);break; default: cout<<"default "<<t<<endl;break; } } int main() { while(1) { test(getch()); } return 0; }
相关文章推荐
- boost::array 数组 容器相关的
- Javascript基础教程之数组 array
- C++ - "array<>"数组容器 详解
- 【数据结构与算法基础】以数组实现的循环队列 / Circular Queue implemented by array
- 复习(数据结构:java):线性表(数组):基础类设计
- Iphone数组一些基础操作 NSArray/NSMutableArray
- Java Script基础(八) Array数组对象
- C++ - "array<>"数组容器 详解
- Javascript数组Array基础介绍
- c#数组赋值基础教程 Array
- Solidity基础入门知识(七)数组Array
- Javascript基础系列之(四)数据类型 (数组 array)
- JavaScript基础----29JS内置对象-Array数组对象
- javascript中数组Array对象调用不同的方法可以实现几种数据结构
- C#控制台基础 将数组颠倒,用算法和Array.Reverse的示例
- Java基础:数组Array转成List的几种方法
- 归并排序(基于顺序容器vector_递归;基于数组array_递归_非递归)
- 掌握javascript中的最基础数据结构-----数组
- 算法与数据结构基础1:C++实现动态数组
- 2017/12/30Java基础学习——复制数组のSystem.arraycopy()方法讲解