Home  >  Q&A  >  body text

指针在C和C++的微妙区别

在C语言中,对于指针,有效而正确的用法是保证他指向同一数组的元素或数组最后一个元素后端的元素(past-end-one),但在C++中由于“逆迭代器”的引入,只是他可以指向数组第一个元素前一端的元素(past-start-one).如:rend()== begin()-1;我想问的是为什么他要这样设计,打破C语言习惯有什么更大的好处

高洛峰高洛峰2875 days ago568

reply all(1)I'll reply

  • 三叔

    三叔2016-11-08 12:48:52

    方便你反向循环访问啊。
    for (it = x.rbegin(); it != x.rend(); --i)
    因为每趟循环后要先进行--i,再判断是不是等于rend()。
    不能让it指向第一个元素就停止循环,那样第一个元素就没有被遍历到了。

    reply
    0
  • Cancelreply