我可以拥有queue<char*> file_queue;
但我需要在每个char*
之后清理一下。我有一个dinamic变量int buff_length;
,它是file_queue
中每个字符的长度。它将在创建config
之前从queue
文件设置一次。所以我想知道 - 是否可以将char[buff_length]
保留在一个boost::shared_ptr
内以及如何做到这一点?
答案 0 :(得分:4)
使用boost :: shared_array&lt; ..&gt;,请参阅here了解文档。
答案 1 :(得分:0)
您可以使用shared_array
:
boost::shared_array<char> ptr(new char[buff_length]);
为什么std::string
或std::vector<char>
不适合您的情况?
注意,使用C ++ 11,您可以使用以下内容:
std::unique_ptr<char[]> ptr(new char[buff_length]);
std::unique_ptr
有专门处理数组。我错误地认为boost::shared_ptr
也做了,但显然这是不正确的。