C++11:配列の代わりにstd::arrayを使用する
C++11後、標準ライブラリはより近代的な配列std::array,cppreferenceを導入した.comでは、次のように紹介されています.
簡単に言えばstd::arrayは、従来の配列がランダムアクセスをサポートし、効率が高く、ストレージサイズが固定されているなどの特徴に加え、反復器アクセス、容量取得、元のポインタの取得などの高度な機能をサポートしています.また、ポインタT*に劣化して開発者を困惑させることはありません.
std::arrayを使用すると、初期化、修正、遍歴をより簡単に行うことができます.ここで例を示します.
<array>
template<
class T,
std::size_t N
> struct array;
(C++11 )
std::array 。
, C T[N]
。 C , T* 。 , ,
N T : std::array<int, 3> a = {1,2,3};
C , 、 、 。
std::array (Container) (ReversibleContainer) ,
array , ,
(ContiguousContainer) (C++17 )
(SequenceContainer) 。
array ( N == 0 )。 , array.begin() == array.end() ,
。 array front() back() 。
array N 。
簡単に言えばstd::arrayは、従来の配列がランダムアクセスをサポートし、効率が高く、ストレージサイズが固定されているなどの特徴に加え、反復器アクセス、容量取得、元のポインタの取得などの高度な機能をサポートしています.また、ポインタT*に劣化して開発者を困惑させることはありません.
std::arrayを使用すると、初期化、修正、遍歴をより簡単に行うことができます.ここで例を示します.
std::array<int, 10> arr = {1,2,3,4,5,6,7,8,9,0};
std::for_each(arr.begin(), arr.end(), [](int &i){i++;});
for(auto i : arr){std::cout << i << " ";}