「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