forloop,迭代器和向量不与我合作

时间:2012-08-13 17:35:59

标签: c++ vector iterator

为什么这对我来说很好用:

 for(int i = 0; i < vec.size(); i++)
    {
        os << vec[i] << " ";
    }

虽然没有:

 for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
    {
        os << vec[*it] << " ";
    }

2 个答案:

答案 0 :(得分:10)

您应该打印*it而不是将其用作索引,您应该将条件更改为it != vec.end()

答案 1 :(得分:5)

你使用的迭代器错了,它应该是:

for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
    os << *it << " ";
}

您的代码只是尝试在索引*it处打印元素,这可能甚至无效。