3

私はC++の真の初心者であり、非常に簡単な質問があります。

vector<int> s[10];

この宣言は実際に何をしますか?saベクトルは10個の整数の容量がありますか?これとの違いは何ですか:

vector<int> s(10);

これがばかげた質問であるならば本当に申し訳ありませんが、私はこの宣言が何をするのか本当に理解できません。

ありがとう!

4

4 に答える 4

10

最初のものは、10個の空のベクトルの配列です。

2つ目は、10個の要素で初期化された単一のベクトルです。

于 2013-03-22T01:18:45.517 に答える
2

これは、std::vectorと組み込みの配列タイプを組み合わせたものです。具体的には、std::vector;の配列。

vector<int> s[10];

10個のベクトルオブジェクトを作成することを意味します。あなたはそれを次のように考えることができます:

vector<int> s0;
vector<int> s1;
...
vector<int> s10;

ベクトルオブジェクトの数は固定されています。各ベクトルのアイテム数はさまざまです。

于 2013-03-22T01:19:38.513 に答える
0

Vectorには、次のようなコンストラクターがあります。

vector (size_type n);

したがって、2番目は、サイズが10のintのベクトルを宣言するだけです。

于 2013-03-22T01:29:21.717 に答える
0

vector<int> s[10];「s」は配列であり、10 個の要素があり、各要素の型は であることを意味しますvector<int>

vector<int> s(10);「s」が でありvector<int>、このベクトルのサイズが 10 であることを意味しますが、これは宣言ではありません。

多くのパラメーターと複雑な戻り値を持つ種類の関数を指す関数ポインターを宣言する場合、はるかに複雑な宣言が存在する可能性があります。

例えば:

vector<int> (*func[10])(int *); これは、パラメーターを受け取りint *、値を返す関数へのポインター ポイントを宣言しますvector<int>。さらに、この種のポインターの配列であり、配列のサイズは 10 です。

于 2013-03-22T03:50:11.760 に答える