0

vector.size() の結果を int 型の変数に格納してもよろしいですか?

たとえば、次のような警告が表示されます。

int n = a.size();

これを行っても問題ありませんか:

int n = (int)a.size();

または、別の型の変数 n を使用する必要がありますか?

ありがとう

4

3 に答える 3

13

size()の戻り値の型は、大きすぎて に格納できない値を簡単に持つことができるため、通常は問題ありませんintsize()その特定の の戻り値の型と同じ型の変数を使用する必要がありますvector。これは、次の方法で簡単に実現できますauto

auto n = a.size();

C++11 をサポートしていない場合は、 を使用できvectorますsize_type

std::vector<TheType>::size_type n = a.size();

はどこaですかstd::vector<TheType>

于 2013-07-06T16:15:31.247 に答える
8

いいえ、大丈夫ではありません。使用する

std::vector<T>::size_type n = a.size();

または、あまり衒学的でない場合:

size_t n = a.size();
于 2013-07-06T16:15:47.560 に答える