gpt4 book ai didi

c++ - 如何从内联模板方法返回通用 vector 迭代器?

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

好的。正如问题所述,我有一个内联模板方法,该方法将迭代器返回到通用 vector 。

注意:我知道我应该将实现更改为 std::find,但这不是我面临的问题。

#include <vector>

template<typename T>
class List : public std::vector<T>
{
public:
List();
~List();

bool Contains(T object);

void Remove(const T& object);

private:
typedef typename std::vector<T>::iterator iterator;

typename std::vector<T>::iterator IteratorOf(const T& object);
};


template<typename T>
inline typename std::vector<T>::iterator List<T>::IteratorOf(const T&
object)
{
if (this->empty())
return nullptr;
else
{
for (typename std::vector<T*>::iterator iter = this->begin();
iter != this->end();
iter++)
{
if (*object == *iter)
return iter;
}
}
return nullptr;
}

当我尝试运行它时,这会引发无数的编译器错误。

我似乎已经尝试了所有方法,但是这种方法就是不受欢迎。

开始怀疑是不是返回泛型迭代器有问题。

最佳答案

对这无数编译器错误的实际答案与这个特定问题完全无关。

您不能在头文件之外定义模板化方法

Visual Studio 会抛出一大堆错误,让您陷入困境,而无法解决相对简单的问题。

关于c++ - 如何从内联模板方法返回通用 vector 迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55750854/

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