gpt4 book ai didi

c++ - 将结构的地址分配给另一个结构的指针

转载 作者:行者123 更新时间:2023-11-27 22:52:10 24 4
gpt4 key购买 nike

我正在创建结构并将它们推到两个 vector 中。在创建这些结构时,我还使用 lower_bound 函数对它们进行排序。第一个结构按名称排序,第二个结构按 ID 排序。

函数看起来像:

bool AddAndSort ( name , ID )
{
auto it = lower_bound ( arr_1 . begin (), arr_1 . end (), name, compare2 () );
auto it1 = lower_bound( arr_2 . begin(), arr_2 .end(), ID , compare1 ( ) );

struct1 tmp1( name ); // create temporary structures which i will push to the vector
struct2 tmp( ID );

arr_1 . insert ( it, tmp );
arr_2 . insert ( it1, tmp1);

/*tmp . p = &tmp1;
tmp1 . p = &tmp;*/

return true;

}

Here is the question: How can i set pointers in those two structures to point to each other?

我试过这个:

tmp . p = &tmp1;
tmp1 . p = &tmp;

但这行不通。

结构:

struct struct1
{
struct1 ( string name ) : name ( name ) { }
string name
struct2 *p;
};

struct struct2
{
struct2 ( int ID ) : ID ( ID ) { }
int ID;
struct1 *p;
}

载体:

vector<struct1> arr_1
vector<struct2> arr_2

最佳答案

你可能想要:

auto inserted_it1 = arr_1.insert(it, tmp);
auto inserted_it2 = arr_2.insert(it1, tmp1);

inserted_it1->p = &*inserted_it2;
inserted_it2->p = &*inserted_it1;

但是之前的引用被insert 无效了。

关于c++ - 将结构的地址分配给另一个结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36335917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com