「boost::array」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> 読み方 ;boost::array: ぶーすと あれい __TOC__ == 概要 == Boost では、固定長配列クラス [[boost::array...」)
 
 
行1: 行1:
<!--
+
[[Boost]]では、固定長配列クラス [[boost::array]] を提供しています。[[C++11]]では、[[std::array]]が追加されました。
vim: filetype=mediawiki
+
-->
+
  
読み方
+
'''読み方'''
 
;[[boost::array]]: ぶーすと あれい
 
;[[boost::array]]: ぶーすと あれい
  
行9: 行7:
  
 
== 概要 ==
 
== 概要 ==
 
 
[[Boost]] では、固定長配列クラス [[boost::array]] を提供しています。
 
[[Boost]] では、固定長配列クラス [[boost::array]] を提供しています。
  
 
[[C++]] の組込配列とは異なり、[[std::vector]] などの標準コンテナのインタフェイスを持ちます。
 
[[C++]] の組込配列とは異なり、[[std::vector]] などの標準コンテナのインタフェイスを持ちます。
 
 
== boost:array の引数 ==
 
== boost:array の引数 ==
 
 
;第1引数: 第1引数はテンプレート引数で要素の型
 
;第1引数: 第1引数はテンプレート引数で要素の型
 
;第2引数: 要素数(配列のサイズ)
 
;第2引数: 要素数(配列のサイズ)
  
 
== 初期化 ==
 
== 初期化 ==
 
 
[[boost::array]] では、組込配列と同様に、 { 1, 2, 3 } の初期化リストを利用できます。
 
[[boost::array]] では、組込配列と同様に、 { 1, 2, 3 } の初期化リストを利用できます。
  
 
== イテレータインタフェイス ==
 
== イテレータインタフェイス ==
 
 
[[boost::array]] は、[[std::vector]] などと同様の begin()/end() のインタフェイスを持ちます。
 
[[boost::array]] は、[[std::vector]] などと同様の begin()/end() のインタフェイスを持ちます。
  
 
== boost::arrayの例 ==
 
== boost::arrayの例 ==
 
 
=== ソースコード boost_array_1.cpp ===
 
=== ソースコード boost_array_1.cpp ===
 
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
 
#include <iostream>
 
#include <iostream>
行52: 行43:
  
 
=== コンパイル ===
 
=== コンパイル ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
g++  -I/usr/local/include boost_array_1.cpp -o boost_array_1
 
g++  -I/usr/local/include boost_array_1.cpp -o boost_array_1
行58: 行48:
  
 
=== 実行例 ===
 
=== 実行例 ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% ./boost_array_1
 
% ./boost_array_1
行67: 行56:
  
 
== boost::arrayとイテレータの例 ==
 
== boost::arrayとイテレータの例 ==
 
 
=== ソースコード boost_array_2.cpp ===
 
=== ソースコード boost_array_2.cpp ===
 
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
 
#include <iostream>
 
#include <iostream>
行95: 行82:
  
 
=== コンパイル ===
 
=== コンパイル ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
g++  -I/usr/local/include boost_array_2.cpp -o boost_array_2
 
g++  -I/usr/local/include boost_array_2.cpp -o boost_array_2
行101: 行87:
  
 
=== 実行例 ===
 
=== 実行例 ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% ./boost_array_2
 
% ./boost_array_2
行110: 行95:
  
 
== 配列サイズの取得の例 ==
 
== 配列サイズの取得の例 ==
 
 
=== ソースコード boost_array_3.cpp ===
 
=== ソースコード boost_array_3.cpp ===
  
行130: 行114:
  
 
=== コンパイル ===
 
=== コンパイル ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
g++  -I/usr/local/include boost_array_3.cpp -o boost_array_3
 
g++  -I/usr/local/include boost_array_3.cpp -o boost_array_3
行136: 行119:
  
 
=== 実行例 ===
 
=== 実行例 ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% ./boost_array_3
 
% ./boost_array_3
行143: 行125:
  
 
== boost::arrayの添字による要素のアクセスの例 ==
 
== boost::arrayの添字による要素のアクセスの例 ==
 
 
=== ソースコード boost_array_4.cpp ===
 
=== ソースコード boost_array_4.cpp ===
  
行165: 行146:
  
 
=== コンパイル ===
 
=== コンパイル ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
g++  -I/usr/local/include boost_array_4.cpp -o boost_array_4
 
g++  -I/usr/local/include boost_array_4.cpp -o boost_array_4
行171: 行151:
  
 
=== 実行例 ===
 
=== 実行例 ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% ./boost_array_4
 
% ./boost_array_4
行180: 行159:
  
 
== 関連項目 ==
 
== 関連項目 ==
 
+
* [[std::array]]
 
* [[std::for_each]]
 
* [[std::for_each]]
 
* [[std::vector]]
 
* [[std::vector]]
 
* [[配列]]
 
* [[配列]]
 +
<!-- vim: filetype=mediawiki -->

2014年1月3日 (金) 16:18時点における最新版

Boostでは、固定長配列クラス boost::array を提供しています。C++11では、std::arrayが追加されました。

読み方

boost::array
ぶーすと あれい

概要

Boost では、固定長配列クラス boost::array を提供しています。

C++ の組込配列とは異なり、std::vector などの標準コンテナのインタフェイスを持ちます。

boost:array の引数

第1引数
第1引数はテンプレート引数で要素の型
第2引数
要素数(配列のサイズ)

初期化

boost::array では、組込配列と同様に、 { 1, 2, 3 } の初期化リストを利用できます。

イテレータインタフェイス

boost::array は、std::vector などと同様の begin()/end() のインタフェイスを持ちます。

boost::arrayの例

ソースコード boost_array_1.cpp

#include <iostream>
#include <boost/foreach.hpp>
#include <boost/array.hpp>
using namespace std;
 
int
main(int argc, char const* argv[])
{
 
        boost::array<int, 3> a = {1, 2, 3};
 
        BOOST_FOREACH(int x, a) {
                cout << x << endl;
        }
 
        return 0;
}

コンパイル

g++  -I/usr/local/include boost_array_1.cpp -o boost_array_1

実行例

% ./boost_array_1
1
2
3

boost::arrayとイテレータの例

ソースコード boost_array_2.cpp

#include <iostream>
#include <algorithm>
#include <boost/array.hpp>
using namespace std;
 
void
disp(int x)
{
        cout << x << endl;
}
 
 
int
main(int argc, char const* argv[])
{
 
        boost::array<int, 3> a = {1, 2, 3};
        for_each (a.begin(), a.end(), disp);
 
        return 0;
}

コンパイル

g++  -I/usr/local/include boost_array_2.cpp -o boost_array_2

実行例

% ./boost_array_2
1
2
3

配列サイズの取得の例

ソースコード boost_array_3.cpp

#include <iostream>
#include <boost/array.hpp>
using namespace std;
 
int
main(int argc, char const* argv[])
{
 
        boost::array<int, 3> a = {1, 2, 3};
        cout << a.size() << endl;
 
        return 0;
}

コンパイル

g++  -I/usr/local/include boost_array_3.cpp -o boost_array_3

実行例

% ./boost_array_3
3

boost::arrayの添字による要素のアクセスの例

ソースコード boost_array_4.cpp

#include <iostream>
#include <boost/array.hpp>
using namespace std;
 
int
main(int argc, char const* argv[])
{
 
        boost::array<int, 3> a = {1, 2, 3};
 
        for (std::size_t i = 0; i < a.size(); ++i) {
                cout << a[i] << endl;
        }
        return 0;
}

コンパイル

g++  -I/usr/local/include boost_array_4.cpp -o boost_array_4

実行例

% ./boost_array_4
1
2
3

関連項目