转发声明指向 STL 容器的指针
Forward declare a pointer to an STL container?
在我的头文件中,我想避免使用 #include 但我的类将有一个向量或指向向量的指针。我只满足于一个指针,但我不知道如何声明它。我是否必须将其声明为无效*并始终投递它?那将是蹩脚的。
// What do I type here to forward declare vector?
class Counters
{
Counters();
void inc(const char* s);
void print();
void clear();
private:
std::vector<int>* Counts;
int total;
};
请注意,我只想在我的类中存储一个指向容器的指针,而不是容器。指针的大小是已知的,不需要参考容器的声明,所以请不要回答这不能完成,因为编译器需要知道容器声明。
也许这适用于您的情况:
//header
struct Container;
struct Foo{
Container *container;
};
//cpp
#include <vector>
struct Container : std::vector<int>{
};
int main(){
Foo foo;
foo.container = new Container;
foo.container->push_back(42);
}
相关文章:
- 删除包含包含动态对象的 STL 容器的智能指针
- 是否有一种 STL 算法可以最后找到,但它也适用于指针?
- STL 函数和函数类型与函数指针类型
- C++ STL 数据结构常时按索引推送/弹出/随机访问,并具有指向元素的可靠指针
- 如何在C++中重新实现包含指针的 STL 容器的类的迭代器
- 如何避免自定义 STL 向量类的智能指针 delete[] 异常?
- 用于 STL 迭代器、指针和 std::nullptr_t 的模板函数
- 通过函数指针对类内的 STL SET 使用自定义比较器
- STL映射比较器能否以某种方式获取指向映射本身的指针?
- 指针类型上的 STL 函数对象
- 清除 C++ 中的指针的 STL 列表
- 限制指针访问STL ::向量元素
- 有没有一种 stl 方法来执行指针向量的深度复制
- 析构函数在与 STL 的共享指针中调用两次
- 指向类的指针的 STL 映射的 SWIG 类型图
- C 指针数组使用STL开始和结束
- 使用带有COM接口的STL智能指针
- STL 算法 + c'tor 不再适用于指向 C 数组的原始指针,因为指向一个过去的末端
- 多态性和STL容器.指针是不必要的
- 如何用类指针(STL)初始化向量