int main() {
std::deque<My_Int*> table;
My_Int* table_entry = new My_Int(2);
table.push_back (table_entry);
My_Int** new_obj = &table.front();
*new_obj = new My_Int(3);
std::cout << table.front()->data << std::endl; // prints 3 as intended
}我主要是对带有双指针的线条感到困惑。我如何使用智能指针来复制它呢?谢谢你的帮助。(我知道代码没有做适当的清理)
编辑:只是为了澄清,使用智能指针时的双队列也是shared_pointers的双队列。
发布于 2021-10-03 15:24:20
int main() {
std::deque<std::shared_ptr<My_Int>> table;
table.push_back (std::make_shared<My_Int>(2));
std::shared_ptr<My_Int> &new_obj = table.front();
new_obj = std::make_shared<My_Int>(3);
std::cout << table.front()->data << std::endl;
}这是我从yyyy的答案中得出的解决方案。我从未见过在声明shared_ptr时使用&运算符,但我认为这是有意义的。
如果有人能够阐明&运算符在这种上下文中是如何工作的,我仍然感到有点困惑。谢谢
https://stackoverflow.com/questions/69426173
复制相似问题