指向 std::vector 个对象的指针
Pointer to a std::vector object(s)
我需要做以下事情:
std::vector<std::string> A;
std::vector<std::string> B;
==> pointer_to_vector<std::string> ptr;
//Some Code
ptr = A; //ptr points to object A
//Some More Code
ptr = B; // //ptr points to object B
在程序中,ptr
需要在不同的时间同时引用A
和B
。它将如何实现并考虑到 std::vector
进行重新分配,这里如何使用智能指针?
您可以像定义指向任何其他类型的指针一样定义指向向量的指针 - 在指针声明中使用 *
,并使用 &
address-of 运算符来获取分配给指针的变量的内存地址,例如:
std::vector<std::string> A;
std::vector<std::string> B;
std::vector<std::string> *ptr;
//Some Code
ptr = &A; //ptr points to object A
//Some More Code
ptr = &B; // //ptr points to object B
或者,如果任何对象出于自身目的重载 operator&
(std::vector
不会),则使用 std::addressof()
,例如:
//Some Code
ptr = std::addressof(A); //ptr points to object A
//Some More Code
ptr = std::addressof(B); // //ptr points to object B
我需要做以下事情:
std::vector<std::string> A;
std::vector<std::string> B;
==> pointer_to_vector<std::string> ptr;
//Some Code
ptr = A; //ptr points to object A
//Some More Code
ptr = B; // //ptr points to object B
在程序中,ptr
需要在不同的时间同时引用A
和B
。它将如何实现并考虑到 std::vector
进行重新分配,这里如何使用智能指针?
您可以像定义指向任何其他类型的指针一样定义指向向量的指针 - 在指针声明中使用 *
,并使用 &
address-of 运算符来获取分配给指针的变量的内存地址,例如:
std::vector<std::string> A;
std::vector<std::string> B;
std::vector<std::string> *ptr;
//Some Code
ptr = &A; //ptr points to object A
//Some More Code
ptr = &B; // //ptr points to object B
或者,如果任何对象出于自身目的重载 operator&
(std::vector
不会),则使用 std::addressof()
,例如:
//Some Code
ptr = std::addressof(A); //ptr points to object A
//Some More Code
ptr = std::addressof(B); // //ptr points to object B