我正在使用结构。有没有办法迭代所有“数字”类型的项目?
struct number { int value; string name; };
答案 0 :(得分:2)
根据我的理解,您希望使用value
访问name
和number
。你可以去array of structure
喜欢
number n[5];
其中n[0],n[1],...n[4]
但是我们在c ++中有一些额外的功能可以通过预定义的map, set
实现这一功能
你可以找到很多地图的例子
答案 1 :(得分:2)
在c ++地图中像python字典一样工作,但两种语言有一个基本的区别。 C ++是打字的,python有鸭子打字。 C ++ Map是键入的,它不能接受像python词典那样的任何类型的(键,值)。 一个示例代码,使其更清晰 -
map<int, char> mymap;
mymap[1] = 'a';
mymap[4] = 'b';
cout<<"my map is -"<<mymap[1]<<" "<<mymap[4]<<endl;
你可以使用技巧来制作一个可以接受任何类型键的地图,参考 - http://www.cplusplus.com/forum/general/14982/
答案 2 :(得分:0)
您可以使用=SUM(SUMIFS($B:$B,$A:$A,">="&DATE(2016,1,1),$A:$A,"<="&DATE(2016,1,31),$C:$C,{"Apple","Banana","Orange"})*{0.5,0.75,1.25})
(或std::map
)
unordered_map
编译并运行:
// Key Value Types.
std::map<int, std::string> data {{1, "Test"}, {2, "Plop"}, {3, "Kill"}, {4, "Beep"}};
for(auto item: data) {
// Key Value
std::cout << item.first << " : " << item.second << "\n";
}
> g++ -std=c++14 test.cpp
> ./a.out
1 : Test
2 : Plop
3 : Kill
4 : Beep
和std::map
之间的区别在于std::unordered_map
std::map
项目按Key
排序,而std::unordered_map
中的值未排序(因此它们将以看似随机的顺序打印。)
在内部,他们使用截然不同的结构,但我相信你对这个细节不感兴趣。