std::vector<T>::size_type
を使用してください。その符号なし積分型。そのは通常と同じsize_t
と同じです。
が
size_type
と
size_t
の違いを知るために、このトピックを参照してください。
1.同様に、あなたはstd::string::size_type
、std::list<T>::size_type
、std::deque<T>::size_type
、std::set<T>::size_type
、というように使用することができます。ほとんどすべての標準コンテナは、size_type
と呼ばれる入れ子型を定義します。
一つは、あなたの代わりにインデックスのイテレータを使用する必要があると主張することができます。しかし、繰り返しループが非常に幅広く水平になることがあることもわかります。
for(std::vector<std::vector<std::string> >::iterator it = v.begin(); it != v.end(); ++it)
{
}
これは表示されません。実際には時々刺激する。このような状況では、インデックスをイテレータよりも好むプログラマもいます。
C++ 0xでは、イテレータがより慣用的になりました。今、あなたは面倒な構文にすることなくイテレータを使用することができます使用して、
for(auto it = v.begin(); it != v.end(); ++it)
{
}
あるいはさらに良いの範囲ベースのforループ:あなたのint型が署名されているので、コンパイラは警告を与える
for(auto & item : v)
{
}
インデックスを使用する代わりに、イテレータを使用することを検討してください。 –