gpt4 book ai didi

c++ - 在 C++ 中将对插入映射

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:00 26 4
gpt4 key购买 nike

我有以下 map 结构:

std::map<std::pair<int, char>, int> transitions;

表示非确定性自动机的转移,每个都有2个整数和一个字符,I,J和C,表示转移的状态,即转移从状态i到状态J,字符C。

0 0 a
0 1 a
1 1 b
1 2 c
1 3 c
3 4 d
4 4 d
4 5 d

我想插入其中。我该怎么办?

我想过做以下事情:

typedef map<pair<int, char>, int> transitions;
for (j=0; j<numberTransitions;j++)
{

cin>> stateOrigin>>stateDestination>>transitionCharacter;
transitions.insert(transitions::value_type(std::make_pair(stateOrigin,transitionCharacter), stateDestination ));

}

我不认为这是这样做的方式,我是使用 map 库的新手。

最佳答案

我唯一看错的是你需要一个对象:

    transitions.insert(transitions::value_type(std::make_pair(stateOrigin,transitionCharacter), stateDestination ));
^^^^^^^^^^^ is a type


/// Should be
transitions trans;

// Then later in the loop.
trans.insert(transitions::value_type(std::make_pair(stateOrigin,transitionCharacter), stateDestination ));

您甚至可以更进一步,使用 key_type 而不是配对:

trans.insert(transitions::value_type(transitions::key_type(stateOrigin,transitionCharacter), stateDestination ));

// or
for(/*STUFF*/)
{
typedef transitions::value_type value_type;
typedef transitions::key_type key_type;
trans.insert(value_type(key_type(stateOrigin,transitionCharacter), stateDestination ));
}

关于c++ - 在 C++ 中将对插入映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589240/

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