「boost::array」の版間の差分
提供: C++入門
(ページの作成:「<!-- vim: filetype=mediawiki --> 読み方 ;boost::array: ぶーすと あれい __TOC__ == 概要 == Boost では、固定長配列クラス [[boost::array...」) |
|||
行1: | 行1: | ||
− | + | [[Boost]]では、固定長配列クラス [[boost::array]] を提供しています。[[C++11]]では、[[std::array]]が追加されました。 | |
− | + | ||
− | + | ||
− | 読み方 | + | '''読み方''' |
;[[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