在C++中,可以使用std::shared_ptr
来实现不提供所有权的情况下暴露共享指针的向量。
下面是一个简单的示例代码:
#include
#include
#include
int main() {
std::vector> sharedPtrs;
// 创建一个共享指针,并将其添加到向量中
sharedPtrs.push_back(std::make_shared(1));
sharedPtrs.push_back(std::make_shared(2));
sharedPtrs.push_back(std::make_shared(3));
// 输出向量中的值
for (const auto& ptr : sharedPtrs) {
std::cout << *ptr << " ";
}
std::cout << std::endl;
// 修改向量中的值
*sharedPtrs[0] = 10;
*sharedPtrs[1] = 20;
*sharedPtrs[2] = 30;
// 再次输出向量中的值
for (const auto& ptr : sharedPtrs) {
std::cout << *ptr << " ";
}
std::cout << std::endl;
return 0;
}
在这个示例中,我们使用std::shared_ptr
来创建整数类型的共享指针,并将它们添加到向量sharedPtrs
中。我们可以通过解引用共享指针来访问和修改向量中的值。
请注意,当向量sharedPtrs
超出其作用域时,共享指针将自动释放其所指向的内存,因为std::shared_ptr
使用引用计数来管理内存。