我不知道如何在下面的代码中包含地图或一对,以http://my.app/api/users?id[]=1,2,3
格式打印一个列表
A:1 B:2 C:3
答案 0 :(得分:0)
你做了很多错事。
char letter = 'A';
到目前为止一切顺利。
typedef pair<char, int> LettreValues;
现在你已经南下了。您已为std :: pair定义了一个类型别名(&#39; typedef&#39;),称为&#34; LettreValues&#34;。
但LettreValues是一种类型 - 不是那种类型的实例。
for (int i = 1; i < 27; ++i)
由于i
从1
开始,您在地图中插入的第一个值将是&#39; A&#39; + 1。
LettreValues[letter]=i;
这会尝试将LettreValues
用作变量,而不是;它试图将它用作地图,这不是 - 它是一对。
static_cast<char>(letter + 1);
这会在信件中添加一个,将其转换为char,然后将其丢弃。
我想也许你打算这样的事情:
// Declare an alias for std::map<char, int>.
using LettreValues = std::map<char, int>;
// Now declare a variable of this type
LettreValues letterValues;
// the type alias step is completely optional, we
// could have just written
// std::map<char, int> letterValues;
for (int i = 0; i < 26; ++i) {
letterValues[letter] = i;
letter++;
}
for (auto& el : letterValues) {
std::cout << el.first << " " << el.second << "\n";
}
答案 1 :(得分:-1)
尝试使用std :: make_pair插入成对,如下所示。
char letter = 'A';
typedef pair<char, int> lettervalues;
for(int i = 1;i<27;i++)
{
lettervalues l = std::make_pair<char, int>(letter,i);
letter = static_cast<char>(letter + i);
}