如何使用静态 stl 列表的迭代器
How to use iterator of static stl list?
我是c++的新手。
在我的程序中,我应该有一些"全局"列表(应该只初始化一次)和一个函数(两者都应该可以从其他类和文件访问)。我是这样定义的:
//header.h file
#include <list>
using namespace std;
class ClassA {
public:
int Var;
};
class StaticListAndFunc {
static list<ClassA> StaticListOfClassA;
static return_t StaticFunc(int x, int y);
};
我的静态函数应该使用 StaticListOfClassA 和其他一些简单的输入。现在我尝试使用 StaticListOfClassA 在源文件中实现 StaticFunc:
//source.cpp
#include "header.h"
return_t StaticListAndFunc::StaticFunc(int x, int y) {
list<ClassA>::iterator TheIterator = StaticListOfClassA.begin();
...
};
我得到的错误:"source.cpp:对'ClassA::StaticListOfClassA'的未定义引用"(在行列表中::迭代器 TheIterator = StaticListOfClassA.begin();)
我应该如何正确定义迭代器?或者,也许还有另一种更好的方法来定义一个类,以后可以从其他文件和类轻松访问?我真的很感激任何帮助..
问题是你没有定义静态列表。在源代码.cpp模块中,您应该编写
list<ClassA> StaticListAndFunc::StaticListOfClassA;
也就是说,您需要定义此静态数据成员。
还要考虑到您已将函数 StaticFunc 声明为具有专用访问控制。您不能在类成员函数或友元函数之外调用它。
相关文章:
- 跟随整数索引列表的自定义类迭代器
- 列表的有效性在插入后开始迭代器
- C++列表迭代器
- 测试迭代器是否位于列表中的最后一个
- 当通知迭代器参数初始化为空列表的开头时,list::insert 行为是什么?
- C++不能取消引用结束列表迭代器
- 创建以向量/列表迭代器为键的映射
- 对列表中的向量使用迭代器
- 使用列表迭代器获取所有值
- 如何实现列表:<T>:迭代器?
- 将列表迭代器存储为成员
- 将列表 en 列表迭代器作为指针 C++ 传递
- 如何从该列表的元素中获取 std::list<T>::迭代器?
- 空列表迭代器比较始终为真
- 如何在给定迭代器列表的情况下从向量中删除元素
- C++迭代器列表
- 迭代器列表,用于从各种列表中收集条目
- 如何在 Map 中存储集合容器的迭代器列表
- 迭代器列表
- 操作迭代器列表+指针