我想避免关于unsigned int和signed int之间的比较的警告.
我使用循环,如:
for (int i =0 ; i < vec.size(); i++) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
这给了这些警告(这本身很好,我想要高级别的警告).
我想把它改成以下内容:
for (auto i = vec.size()*0; i < vec.size(); i++) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我没有得到警告.但我想知道是否有比这更优雅的东西,它会自动推断出迭代器所需的类型.
使用基于范围的for循环
for (auto& i : vec)
{
cout << *i;
}
Run Code Online (Sandbox Code Playgroud)
使用迭代器.
for (auto it = vec.begin(), end_it = vec.end(); it != end_it; ++it)
{
cout << *it;
}
Run Code Online (Sandbox Code Playgroud)
如果你想要一个柜台,使用std::vector<T>::size_type或只是size_t你懒惰.