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

Fork Me On Github

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

倒序遍历

c++


std::vector<byte> items

item.begin()

item.end()

item.rbegin()

item.rend()

转 c#


IList<byte> items


0

items.Count

-1

items.Count  -1

遍历c++


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

转 c#


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

倒序遍历c++


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

转 c#


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

我的理解:

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

Click here to view
0 106 0