博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原創) 如何使用boost::array? (C/C++) (template) (boost)
阅读量:6859 次
发布时间:2019-06-26

本文共 926 字,大约阅读时间需要 3 分钟。

看到C#的array自帶GetLength()很羨慕嗎?boost::array也自帶size()喔!!

由於boost::array自帶size(),所以當傳進function時,可以不需將array size當參數傳進function。

 1
ExpandedBlockStart.gif
ContractedBlock.gif
/**/
/* 
 2InBlock.gif(C) OOMusou 2007 http://oomusou.cnblogs.com
 3InBlock.gif
 4InBlock.gifFilename    : boostArraySize.cpp
 5InBlock.gifCompiler    : Visual C++ 8.0 / ISO C++ (boost)
 6InBlock.gifDescription : Demo how to use boost array pass to function
 7InBlock.gifRelease     : 02/25/2007 1.0
 8ExpandedBlockEnd.gif*/
 9
None.gif#include 
<
iostream
>
10
None.gif#include 
<
boost
/
array.hpp
>
11
None.gif#include 
"
conio.h
"
12
None.gif
13
None.gif
using
 
namespace
 std;
14
None.gif
using
 
namespace
 boost;
15
None.gif
16
None.giftemplate
<
size_t N
>
17
ExpandedBlockStart.gifContractedBlock.gif
void
 func(array
<
int
,N
>
 ia) 
dot.gif
{
18ExpandedSubBlockStart.gifContractedSubBlock.gif  for(int i = 0; i != ia.size(); ++i) dot.gif{
19InBlock.gif    cout << ia[i] << endl;
20ExpandedSubBlockEnd.gif  }
21ExpandedBlockEnd.gif}
22
None.gif
23
ExpandedBlockStart.gifContractedBlock.gif
int
 main() 
dot.gif
{
24ExpandedSubBlockStart.gifContractedSubBlock.gif  array<int3> ia = dot.gif{
0 , 12}
;
25InBlock.gif  func(ia);
26InBlock.gif  
27InBlock.gif  getch();
28ExpandedBlockEnd.gif}

執行結果

None.gif
0
None.gif
1
None.gif
2

18行

ExpandedBlockStart.gif
ContractedBlock.gif
for
(
int
 i 
=
 
0
; i 
!=
 ia.size(); 
++
i) 
dot.gif
{

我們看到ia自帶size()
25行

None.gif
func(ia);

也沒有傳array size進去。
Conclusion
C/C++傳統須另外將array size當參數傳進function的缺點,現在有兩種方式解決,一種是使用function template,請參閱,一種就是本文所使用的boost:array。
See Also

转载地址:http://setyl.baihongyu.com/

你可能感兴趣的文章
float浮点数的二进制存储方式及转换
查看>>
二手X61续
查看>>
如何在 CentOS 7 上禁用 SELinux
查看>>
Android有用代码片断(五)
查看>>
Git 版本库理解
查看>>
spring-boot项目在线生成工程使用(start.spring.io)
查看>>
tomcat修改jsessionid在cookie中的名称
查看>>
机器学习教程
查看>>
在 MinGW 中使用 OpenSSL 创建证书时的 BUG
查看>>
第二十三讲:tapestry条件与循环组件详解之if
查看>>
用js实现的刷新页面
查看>>
我有一个梦想
查看>>
iOS SDK 开发遇到问题集锦
查看>>
Python- You are using pip version 18.1, however version 19.1.1 is available.
查看>>
用java反射将map映射成java对象的简易实现,模拟BeanUtils
查看>>
C Primer Plus 第11章 字符串和字符串函数 11.4 自定义字符串I/O函数
查看>>
JBoss 系列五十五:JBoss 7/WildFly 集群之 HornetQ Messaging - III(示例补充说明)
查看>>
Babel指南 - 基本环境搭建
查看>>
Mybatis常用总结一
查看>>
BSTR详解一 -BSTR简介和内部结构
查看>>