我想隨機分配給boost :: ptr_vector。如果在正常的STL矢量我這樣做:隨機分配給boost :: ptr_vector
class A{
};
A* a1 = new A();
A* a2 = new A();
vector<A*> normal_vec;
normal_vec.resize(2);
normal_vec[1] = a1;
normal_vec[0] = a2;
我試圖做同樣的的boost :: ptr_vector:
A* a1 = new A();
A* a2 = new A();
ptr_vector<A> boost_vec;
boost_vec.resize(2);
boost_vec[1] = a1;
boost_vec[0] = a2;
,但我得到以下錯誤:
no match for ‘operator=’ in ‘v.boost::ptr_vector<A>::<anonymous>.boost::ptr_sequence_adapter<T, VoidPtrSeq, CloneAllocator>::operator[] [with T = A, VoidPtrSeq = std::vector<void*, std::allocator<void*> >, CloneAllocator = boost::heap_clone_allocator, boost::ptr_sequence_adapter<T, VoidPtrSeq, CloneAllocator>::reference = A&, boost::ptr_sequence_adapter<T, VoidPtrSeq, CloneAllocator>::size_type = long unsigned int](1ul) = a1’
但我正在努力解決這個問題
另請參閱:http://stackoverflow.com/questions/13367079/how-to-randomly-assign-to-vector-in-c –
看起來像你一直沒有讀過您正在使用的類型的文檔。 –
您的'std :: vector'示例不是通常添加到'vector'的示例。使用'push_back'(在可選地調用'reserve'後)而不是'operator []'。 – Praetorian