我想存储一个指向一个固定大小数组的共享指针到一个向量中,我想使用一个共享指针,因为我必须将一个指向数组的指针传递给另一个类,写在数组中,我想拥有多个数组,因为我可能有更多的写入类实例,每个实例都需要一个数组写入,它们会在数组中写入大量数据,因此移动它们不是不错的选择。存储向量中的数组共享指针
std::shared_ptr<char> sp(new char [MAX_LENGTH], std::default_delete<char[]>());
arrayVect.push_back(sp);
矢量被定义为类的成员,如:
std::vector< std::shared_ptr< char [ MAX_LENGTH ] > > arrayVect;
,我发现了错误:
error: no matching function for call to ‘std::vector<std::shared_ptr<char [MAX_LENGTH]> >::push_back(std::shared_ptr<char []>&)’
我已经尝试了不同的选择,但他们都没有工作,可能你指出了正确的做法吗?或者是否有我失踪的替代方案?写入类需要一个用于写入函数的字符数组,所以我认为我被卡住了数组。
谢谢!
'的std ::矢量<性病:: shared_ptr的> arrayVect;' –
CinCout
对子级不是被共享的指针到一个单个字符的向量?如果我想访问如下内容: *(arrayVect.at(0))[1] 或类似的东西? –
不,这不会是指向单个字符的指针。实际上,数组通常衰变为指针。 –