在C++中迭代一个向量

bea*_*ans -2 c++

我有一个矢量:

std::vector<std::pair<int, long> > v;
v.push_back(std::make_pair(1, 2L));
etc...
Run Code Online (Sandbox Code Playgroud)

我怎样才能遍历它并从中获取int和long元素?

Cor*_*lks 5

使用C++ 03:

for (std::vector<std::pair<int, long> >::iterator i = v.begin(); i != v.end(); ++i)
{
    std::cout << "int: " << i->first << " long: " << i->second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

使用C++ 11:

for (std::pair<int, long> p : v) // could also do auto p, auto& p, or (const) std::pair<int, long>& p
{
    std::cout << "int: " << p.first << " long: " << p.second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

  • 在C++ 11中,我可能会使用`auto`并保存一些打字,说实话. (3认同)