从另一个类调用迭代器构造函数
Calling iterator constructor from another class
我试图将graph
类写为模板类。正如问题中所回答的那样,我试图用std::set
来实现graph
,以下是我到目前为止所写的内容。
#include <set>
template <class T,
class Container = std::set<T> >
class graph {
public:
class iterator {
public:
iterator() {
std::set<T>::iterator();
}
iterator(const iterator&) {
std::set<T>::iterator();
}
~iterator() {
std::set<T>::~iterator();
}
我在这里寻找的是每当graph::itertor
被调用时,内部应该调用set::iterator
,这种方法是否可以,以及为什么~iterator()
没有被编译。
我认为你想为你的graph类提供迭代器,而graph的迭代器只不过是底层容器类型的迭代器。如果是,那么你应该这样做,
template <class T, class Container = std::set<T> >
class graph
{
public:
typedef typename Container::iterator iterator;
typedef typename Container::const_iterator const_iterator;
//...
};
至于你的代码,我想说std::set<T>::iterator()
创建了一个临时对象,而这个临时对象在完整表达式的末尾被销毁。故事到此结束。std::set<T>::~iterator()
甚至不能编译
相关文章:
- 如何在C++中将迭代器作为函数参数传递
- 使用迭代器的模板类的构造函数
- C++:复制迭代器的构造函数
- 如何基于循环迭代器选择函数
- 由迭代器构造的反向迭代器是否是其以前的迭代器?
- 使用迭代器成员函数是否仅适用于某些向量类型"empty()"?
- 如何为获取 stl 容器迭代器的函数提供函数签名?
- 包装 C API 通过C++接受迭代器的函数获取原始指针
- c std :: vector迭代器构造函数,first == last
- 我如何从循环内部使用迭代器的函数内部的getter中检索特定的成员
- 如何将迭代器的默认构造值为迭代器作为函数中的默认参数
- 具有集合<string>和迭代器的函数
- 通过迭代器调用函数
- 从迭代器调用函数
- 返回迭代器的函数缺少分号错误
- 从另一个类调用迭代器构造函数
- 将空范围传递给接受一对迭代器的函数的干净/简洁的方法是什么?
- 如何解决一系列关于迭代器构造函数的错误,包括期望的左值、缺失的转换和可行性
- 使用字符串类型的取消引用矢量迭代器作为函数参数
- 列表迭代器Next函数