C++ 映射到结构始终返回向量中的最后一个结构<;结构>;

C++ 映射到结构始终返回向量中的最后一个结构<;结构>;,c++,dictionary,vector,struct,C++,Dictionary,Vector,Struct,我有一个向量或结构。我正在使用emplace_back就地创建结构。然后,我将指向每个结构的指针映射为指针映射 但是,稍后当我尝试调用结构时,映射总是检索最后一个结构 #包括 #包括 #包括 使用名称空间std; // ------------------------------- //资产对 // ------------------------------- 结构资产对{ //成员变量 int ID_1; int ID_2; int-pair_-ID; //建造师 资产对(const int

我有一个向量或结构。我正在使用emplace_back就地创建结构。然后,我将指向每个结构的指针映射为指针映射

但是,稍后当我尝试调用结构时,映射总是检索最后一个结构

#包括
#包括
#包括
使用名称空间std;
// -------------------------------
//资产对
// -------------------------------
结构资产对{
//成员变量
int ID_1;
int ID_2;
int-pair_-ID;
//建造师
资产对(const int id_1,const int id_2):id_1(id_1),id_2(id_2)
{
配对ID=((ID_1和0xFFFF)
将导致指向局部变量
new\u pair
的指针存储在地图中。您需要将
new\u pair
更改为指针或引用:

auto &new_pair = *(Asset_Pairs.begin() + pair_counter);
或者,由于
Asset\u Pairs
是一个向量,您可以直接使用它

auto &new_pair = Asset_Pairs[pair_counter];

将导致指向局部变量
new\u pair
的指针存储在地图中。您需要将
new\u pair
更改为指针或引用:

auto &new_pair = *(Asset_Pairs.begin() + pair_counter);
或者,由于
Asset\u Pairs
是一个向量,您可以直接使用它

auto &new_pair = Asset_Pairs[pair_counter];