gpt4 book ai didi

c# - 在 C# 中编写 C++ std::reverse 等效项的最接近方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:22:03 26 4
gpt4 key购买 nike

reverse C++标准库中的算法等同于

template <class BidirectionalIterator>
void reverse (BidirectionalIterator first, BidirectionalIterator last)
{
while ((first!=last)&&(first!=--last)) {
std::iter_swap (first,last);
++first;
}
}

根据 http://www.cplusplus.com/reference/algorithm/reverse/ .我想用 C# 编写等价物:

public void Reverse<T> ( T first, T last ) 
{
// ...
}

首先,你如何传入两个对IEnumerator的引用? s,第二个是可以向后移动的?有没有一种自然的方法可以做到这一点,还是需要先扩展 IEnumerable<T>

其次,如果上一个问题的答案是否定的,那么有没有经过Skeet认证的C#写法reverse就通用性和效率而言等于 C++ 吗?如果有,那是什么?

最佳答案

List<T>接口(interface)提供了一个Reverse()与 C++ 等效的方法。

看看https://msdn.microsoft.com/en-us/library/b0axc2h2(v=vs.110).aspx

关于c# - 在 C# 中编写 C++ std::reverse 等效项的最接近方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36027493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com