对 c++ 中向量的查询

Queries on vectors in c++

本文关键字:查询 向量 c++      更新时间:2023-10-16
int main() { vector g1; vector :: iterator i; vector :: reverse_iterator ir;
    for (int i = 1; i <= 5; i++)
        g1.push_back(i);
    cout << "Output of begin and endt:t";
    for (i = g1.begin(); i != g1.end(); ++i)
        cout << *i << 't';
    cout << endl << endl;
    cout << "Output of rbegin and rendt:t";
    for (ir = g1.rbegin(); ir != g1.rend(); ++ir)
        cout << 't' << *ir;
    return 0;
}

在此代码中,变量"i"已声明为迭代器以及 for 循环中的变量。 这不是错误吗?

如果我们看到第一个 for 循环,它说循环将运行到 i!=g1.end() 这意味着 *(g1.end()) 的值不应该由 *i 显示,但它正在给出。 IDE 显示输出 1 2 3 4 5 对我来说应该是 1 2 3 4

  1. i在参数列表中定义为迭代器。当你在第一个for循环中重新定义它时,这只是循环范围的新定义 - 这是完全合法的,尽管不是好的做法。

  2. vector::end()指向最后一项之后的内存,而不是最终项。所以,是的,矢量中的最后一项将被打印。