boost 系列四 Array和FOREACH
来源:互联网 发布:乘联会新能源销量数据 编辑:程序博客网 时间:2024/06/07 00:48
boost::array是静态数组的代替,以下为一个参考例子:
#include <boost/array.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/foreach.hpp>
boost::array<int,4> arrf={1,2,3,4};//=operator
boost::array<int,4> arrs={4,3,2,1};//=operator
arrs = arrf ;//=operator(const &)
/**
begin();
end():
iterator
**/
boost::array<int,4>::iterator iter;
for(iter= arrs.begin();iter!=arrs.end();iter++)
{
std::cout<<*iter<<' ';
std::cout<<std::endl;
}
/**
BOOST_FROEACH
BOOST_TYPEOF
**/
BOOST_FOREACH(BOOST_TYPEOF(*arrs.begin()) elem,arrs)
{
std::cout<<elem<<' ';
std::cout<<std::endl;
}
/**
rbegin()
rend();
reverse_iterator
**/
boost::array<int,4>::reverse_iterator rIter;
for(rIter = arrs.rbegin();rIter!=arrs.rend();rIter++)
{
std::cout<<*rIter<<' ';
std::cout<<std::endl;
}
/**
BOOST_FOREACH
BOOST_TYPEOF
**/
BOOST_FOREACH(BOOST_TYPEOF(*arrs.rbegin()) elem,arrs)
{
std::cout<<elem<<' ';
std::cout<<std::endl;
}
/**
size()
operator []
at()
**/
for(std::size_t i =0;i<arrs.size();i++)
{
std::cout<<arrs[i]<<' ';
std::cout<<arrs.at(i)<<' ';
std::cout<<std::endl;
}
/**
back()
front()
**/
std::cout<<arrs.back()<<std::endl;
std::cout<<arrs.front()<<std::endl;
/**
data()
c_array()
**/
const int* dt = arrs.data();
/*dt[0] = -1;
std::copy(arrs.begin(),arrs.end(),std::ostream_iterator<int>(std::cout," "));
std::cout<<std::endl;
*/
int* dtN = arrs.c_array();
dtN[0] = 1;
std::copy(arrs.begin(),arrs.end(),std::ostream_iterator<int>(std::cout," "));
/**
assign
**/
arrs.assign(10);
std::cout<<std::endl;
std::copy(arrs.begin(),arrs.end(),std::ostream_iterator<int>(std::cout," "));
std::cout<<std::endl;
/**
swap
**/
arrs.swap(arrf);
BOOST_FOREACH(BOOST_TYPEOF(*arrs.begin()) elem , arrs)
{
std::cout<<elem<<' ';
}
}
在实际使用时可以使用自定义类型来替换宏BOOST_FOREACH等:
#define myforeach BOOST_FOREACH
#define mytype BOOST_TYPEOF
0 0
- boost 系列四 Array和FOREACH
- array.foreach() 和 array.map() 的用法
- Boost.Foreach
- 使用 boost.foreach foreach
- 使用 boost.foreach foreach
- 使用 boost.foreach foreach
- Array.FindAll和Array.ForEach泛型方法
- javascript array.forEach()和array.map()的区别
- boost.array源码整理和使用说明
- boost之Boost.Foreach遍历
- boost之Boost.Foreach遍历
- 【Boost】boost::array详解
- 【Boost】boost::array详解
- Boost源码简析系列——Array(1)
- Boost源码简析系列——Array(2)
- boost foreach 探究
- Boost程序库学习-foreach
- boost之foreach
- MAC下切换到zsh,打造有git提示的美化shell
- 小女生的Linux技术~~~Linux常识~~
- 百度地图API调用实例
- http协议漫谈
- c++继承经典例子
- boost 系列四 Array和FOREACH
- centos 按装好apache服务, 页面无法访问解决办法 80端口没开
- MySQL 5.1 windows安装 与 简易教程
- 【DP】 TJU 4087
- imx536开发板启动打印信息一览
- poj-3253
- 详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
- [leetcode] Largest Rectangle in Histogram
- ASP.NET 模式窗口(子父窗口之间的传值)