std :: std :: vector矢量指针

时间:2012-01-18 15:53:53

标签: c++ pointers stdvector

快速提问:

是否可以制作一个可以引用std::vector<std::vector<int> >std::vector<std::vector<double>>的指针?

Thx

2 个答案:

答案 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>