Pointer 指针转换
cannot convert ‘std::vector<Yolo>’ to ‘void*’
--1
//转过去
static_cast <void *>(vector *)
//转过来
static_cast <vector *>(void *)
--2
//转过去
vector<double> arr;
void* ptr = (void*) (&arr); //转void*
//do what you want here
vector<double> * v_ptr;
v_ptr= (vector<double>*) (ptr); //转回来
这里的问题是,两次指针转换都是强制转换,肯定会成功,但是很容易出错
比如后边你这么转
vector<int> * v_ptr;
v_ptr= (vector<int>*) (ptr);
也是可以的,编译器不会提醒你出错了
//转过来(对象)
https://stackoverflow.com/questions/39312943/class-stdvectorobject-has-no-member-named-x
vector<Object>* things;
(*things)[0];