c# 重写 c++ 程序笔记:遍历

Fork Me On Github
zodream 编程技术 C# 2021年09月

c# 重写 c++ 程序笔记:遍历

倒序遍历

c++

c++
           

std::vector<byte> items

item.begin()

item.end()

item.rbegin()

item.rend()
1234567891011

转 c#

c#
            

IList<byte> items


0

items.Count

-1

items.Count  -1
123456789101112

遍历c++

c++
      

for(std::vector<byte>::const_iterator p = items.begin(); p != items.end(); ++p)
{
    *p
}
123456

转 c#

c#
      

for (var i = 0; i < items.Count; i ++) 
{
    items[i]
}
123456

倒序遍历c++

c++
       

using rit = std::reverse_iterator<std::vector<byte>::const_iterator>;
for(rit p = rit(items.begin()); p != items.rend(); ++p)
{
    *p
}
1234567

转 c#

c#
      

for (var i = -1; i != items.Count - 1; i --) 
{
    items[i]
}
123456

我的理解:

std::reverse_iterator 实际上是把输入的位置往前移一位,并把 + 转成 -,方向反一下

点击查看全文
0 129 0