gpt4 book ai didi

c++ - C++ 中 std::list::begin() 的返回类型是什么

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:04 25 4
gpt4 key购买 nike

我想这些信息可以通过深入了解 <list> 得到实现,这就是我在最后一天所做的。

我的问题是我想要一个 template<class T> 的方法(它有一个私有(private)的 std::list<T> 成员)来包装......但我无法弄清楚哪个返回值给这个方法。

我的代码是这样的:

template &lt;class T &gt;
class MyTemplate {
std::list&lt;T&gt; myList;
...

somereturnvaluehere myMethod(){
return myList.begin();
}
...

}

最佳答案

要么是

  • typename std::list<T>::iterator , (非常量版本)
  • typename std::list<T>::const_iterator (常量版本)

取决于是否myListconst对象与否,但在您的情况下,它似乎不是 const对象,这意味着您应该使用第一个版本,即非常量版本。

在 C++11 中,你不需要担心它,如果你愿意,你可以使用 trailing-return type as:

auto myMethod() -> decltype(myList.begin())
{
return myList.begin();
}

但我认为,对于您的情况,这是矫枉过正,事实上,使事情不必要地复杂化。所以我建议你不要使用它;但只要知道在 C++11 中有一个叫做 trailing-return-type 的东西,它的使用在某些情况下可能是合理的。

关于c++ - C++ 中 std::list<T>::begin() 的返回类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10703970/

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