我想避免有关 unsigned int 和 signed int 之间比较的警告。
我使用循环,例如:
for (int i =0 ; i < vec.size(); i++) {
// do something
}
它给出了这些警告(这本身很好,我想要高级警告)。
我想到了将其更改为以下内容:
for (auto i = vec.size()*0; i < vec.size(); i++) {
// do something
}
在这种情况下我不会收到警告。但我想知道是否有比这更优雅的东西,它会自动推断出迭代器所需的类型。
最佳答案
使用基于范围的for循环
for (auto& i : vec)
{
cout << *i;
}
使用迭代器。
for (auto it = vec.begin(), end_it = vec.end(); it != end_it; ++it)
{
cout << *it;
}
如果你想要一个计数器,使用std::vector<T>::size_type
或者只是 size_t
如果你懒惰。
关于c++ - 在 C++11 中是否有更优雅的方法来执行以下操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282959/