可以通过以下步骤实现:
#include <iostream>
#include <memory>
#include <vector>
#include <initializer_list>
std::vector<std::unique_ptr<int>> convertInitializerListToUniquePtrVector(std::initializer_list<int*> ptrList) {
std::vector<std::unique_ptr<int>> uniquePtrVector;
for (auto ptr : ptrList) {
uniquePtrVector.push_back(std::make_unique<int>(*ptr));
}
return uniquePtrVector;
}
int main() {
int a = 1, b = 2, c = 3;
std::initializer_list<int*> ptrList = {&a, &b, &c};
std::vector<std::unique_ptr<int>> uniquePtrVector = convertInitializerListToUniquePtrVector(ptrList);
for (auto& uniquePtr : uniquePtrVector) {
std::cout << *uniquePtr << " ";
}
return 0;
}
在上面的示例代码中,我们首先定义了三个整数变量a、b和c,并将它们的地址存储在initializer_list中。然后,我们调用convertInitializerListToUniquePtrVector函数,将initializer_list作为参数传递。函数内部遍历initializer_list中的每个指针,并使用make_unique函数创建对应的unique_ptr,并将其添加到向量中。最后,我们遍历unique_ptr的向量,并输出每个指针所指向的值。
这是一个简单的示例,演示了如何将指针的initializer_list转换为unique_ptr的向量。在实际应用中,您可能需要根据具体的需求进行适当的修改和扩展。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云