可以简化此代码以向 std::map 添加结构吗?

问题描述 投票:0回答:1

我有这样的结构:

struct S_SWAP_TALK
{
    S_TALK_INFO* pHomeTalk{};
    S_AWAY_TALK* pAwayTalk{};
};

而且,我有这个

std::map

std::map<UINT, S_SWAP_TALK> m_mapSwapTalks;

目前,我已经像这样填充了地图:

S_SWAP_TALK sSwapTalk{};
sSwapTalk.pAwayTalk = &sAwayTalk;
m_mapSwapTalks[menuItemId] = sSwapTalk;

S_SWAP_TALK sSwapTalk{};
sSwapTalk.pHomeTalk = &sPTI;
m_mapSwapTalks[menuItemId] = sSwapTalk;

是否可以简化此代码,以便我不需要将

S_SWAP_TALK
结构声明为变量?例如:

m_mapSwapTalks[menuItemId] = ...;
visual-c++ struct stdmap
1个回答
0
投票

使用 C++20 你可以写:

m_mapSwapTalks[menuItemId] = { .pAwayTalk = &sAwayTalk };
m_mapSwapTalks[menuItemId] = { .pHomeTalk = &sPTI };
© www.soinside.com 2019 - 2024. All rights reserved.