
C++のstd::vectorが格納する要素として配列を指定することはできますか
vectorを使って2次元配列を表現したいときは,たとえば
std::vecor<std::vector<int>> v;
とすれば2次元配列が表現できますよね.
2次元配列の列方向の要素数が2で固定されていて,行方向の要素数が不確定のデータを扱いたいので,2次元配列を格納するvectorで扱えればなと思いました.
(2個で1組のデータがたくさんあるということなので,vectorの2次元配列ではありません)
std::vector<int[2]> v;
int a[2];
a[1] = 1;
a[0] = 2;
v.push_back(a);
という書き方ではコンパイルできなかったのですが,vectorに配列要素を格納させることはできないのでしょうか.
あるいは,もし可能ならどのように書けばよいのでしょうか.
結局は1組のデータセットを構造体化してそれをvectorにプッシュするやり方に落ち着いたのですが,疑問に思ったままモヤモヤしているので質問させて頂きます.
「vector 配列」などのキーワードで検索してみましたが,vectorの動的配列としての紹介記事が多くヒットしてしまい,自分ではうまく情報を発見することはできませんでした.
よろしくお願いします.
No.5
- 回答日時:
「配列って結局先頭ポインタなので」という表現は乱暴すぎるし余計に誤解させるだけの可能性が高いので賛同できないなぁ>#3. あと,
コンテナに素のポインタを入れるとかえって管理が面倒になるので正直いってお勧めしない.No.4
- 回答日時:
> 2個で1組のデータがたくさんある
だったら vector<pair<int,int>> が楽なんじゃ?
pairというものを初めて知りました。
今回はこのpairのようなものを自作して解決していたという感じですね。
回答ありがとうございました。
No.3
- 回答日時:
配列って結局先頭ポインタなので、
std::vector<int*> v;
で、できませんか?
要素数の指定はできませんが。
ちなみにためしてはいません。
この発想はありました。
しかし、静的配列のポインタをプッシュしても同じアドレスを突っ込むだけですし、new[]した配列を入れてもvectorがデストラクトされる前にdelete[]しなければならないので管理が大変になるかと思うのでやめました。
ちなみに、静的配列にこだわっていたのは、sizeofで要素数が分かるためです。要素数も一元的に管理したいなら、#1の方が言うようにarray相当のものを自作するのがよさそうですね。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてください 9 2022/04/22 18:50
- C言語・C++・C# このプログラミング誰か教えてください。 2 2022/04/22 18:48
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- ブルーレイ・プレーヤー・レコーダー BD-REについて教えてください。 3 2022/11/10 23:28
このQ&Aを見た人はこんなQ&Aも見ています
-
C言語の配列をC++のvectorに高速に変換したい
C言語・C++・C#
-
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
-
4
C言語 配列の長さの上限
C言語・C++・C#
-
5
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
6
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
7
C++ 構造体の一括初期化 {0}
C言語・C++・C#
-
8
スレッドにて同一メモリの書き込み、読み取り
C言語・C++・C#
-
9
配列の要素数に変数を入れたいときには
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 配列の長さの上限
-
銀行ATMの数字キーの配列
-
2次元配列でエラーがでます。
-
C言語Char型配列に小数値を入れ...
-
配列をEraseしてもメモリが開放...
-
C# Listを使わずに2次元配列の...
-
テキストファイルから文字列を...
-
C言語初心者 構造体 課題について
-
自販機での金銭収受を想定した...
-
アクセスランキングを作成する方法
-
C# 配列の変数宣言について。
-
配列で格納したものをmsgboxで...
-
シーケンスの解析に使うclustal...
-
配列とポインタについて。 配列...
-
【C言語】配列の中に配列を入れ...
-
C言語で特定列だけを抽出して配...
-
ゼロサプレスって?
-
vectorで文字列の配列を使う方法
-
配列を使わずに、変数名を動的...
-
ExcelVBAで質問です。離れた二...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
C# Listを使わずに2次元配列の...
-
配列を使わずに、変数名を動的...
-
配列で格納したものをmsgboxで...
-
【速いブラインドタッチ】手を...
-
配列をEraseしてもメモリが開放...
-
ExcelVBAで質問です。離れた二...
-
Redimした動的配列はEraseする...
-
C# 配列の変数宣言について。
-
複数の選択範囲の行番号を個別...
-
VBで構造体の配列を関数に渡す...
-
先頭アドレスとは何ですか?
-
配列の参照渡しで型が一致しま...
-
銀行ATMの数字キーの配列
-
配列を含む構造体の初期値について
-
C言語で特定列だけを抽出して配...
-
unsigned char配列への入力の仕方
-
VB.NET 構造体の配列の検索機能...
-
C++ vectorに配列をプッシュしたい
-
C言語初心者 構造体 課題について
おすすめ情報