快速提问:
是否可以制作一个可以引用std::vector<std::vector<int> >
或std::vector<std::vector<double>>
的指针?
Thx
答案 0 :(得分:2)
如果使用boost是一个选项,您可以使用boost:variant
。从技术上讲,它不是一个指针,而是一个类型安全的单项容器,但它应该能够完成工作而不需要使用“大枪”方式使用void*
。
答案 1 :(得分:1)
<bad_guy_mode>
typedef std::vector<std::vector<int>>* vvi_ptr;
typedef std::vector<std::vector<double>>* vvd_ptr;
union int_or_double_vecs{
vvi_ptr int_vector;
vvd_ptr double_vector;
};
(请注意,一次只能访问一个成员,并且它只是您设置的成员。)
</bad_guy_mode>