c++ arrayによる静的二次元配列

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yum@

c++ arrayによる静的二次元配列

#1

投稿記事 by yum@ » 10年前

a[2][3]のようにしてアクセスできるようにしたいのですが、
どうやって作ればいいのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: c++ arrayによる静的二次元配列

#2

投稿記事 by h2so5 » 10年前

boost::multi_array が参考になると思います。
http://www.kmonos.net/alang/boost/class ... array.html

yum@

Re: c++ arrayによる静的二次元配列

#3

投稿記事 by yum@ » 10年前

コード:

 
#include <boost/multi_array.hpp>

//////////////////////////

typedef boost::multi_array<int, 2> MyArray;
MyArray A( boost::extents[10][10] );
 
のようにすればいいんですね。
初boost でしたが理解できました。
ありがとうございます。

KORYUOH
記事: 44
登録日時: 12年前

Re: c++ arrayによる静的二次元配列

#4

投稿記事 by KORYUOH » 10年前

std::arrayに関してはこういう書き方で対応できます。

コード:

#include <array>
typedef std::array<std::array<int,10>,10> matrix_t;

matrix_t A;
A[0][0] = 1;

C言語を使うと自分の足を誤って撃ち抜いてしまうことがある。 C++を使えばそのような間違いを犯しにくくなる。しかし、やってしまったときには足全体が無くなる。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: c++ arrayによる静的二次元配列

#5

投稿記事 by h2so5 » 10年前

KORYUOH さんが書きました:std::arrayに関してはこういう書き方で対応できます。

コード:

#include <array>
typedef std::array<std::array<int,10>,10> matrix_t;

matrix_t A;
A[0][0] = 1;

その書き方だとメモリ領域が連続する保証がないので、C言語の二次元配列のようには使えません

閉鎖

“C言語何でも質問掲示板” へ戻る