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

提供: C++入門
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> 読み方 ;boost::array: ぶーすと あれい __TOC__ == 概要 == Boost では、固定長配列クラス [[boost::array...」)
(相違点なし)

2013年3月23日 (土) 19:18時点における版


読み方

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

関連項目