我想使用字符串索引一个向量,就像命名向量中的每个元素使用它的名称而不是索引它,就像在LUA中一样。例如,在LUA中,您可以:
list = { "John" = 3, "Sean" = 4, "James" = 1 } print(list["James"])
输出将等于1我想要一个方法来做到这一点,但在C++。我仍然没有尝试任何东西,因为我不知道从哪里开始,但我希望有一种紧凑的方法来做这件事,或者另一种替代方法可以帮助我解决我在C++中的问题。
sd2nnvve1#
对于这个问题,您应该使用Map数据结构,而不是矢量。Map是键、值对的集合。在本例中,您需要一个字符串键和一个整数值。Here are the docs for using them in C++
#include <map> #include <iostream> int main() { // Initializing map using map library // Each entry is a string key, integer value std::map<std::string, int, std::less<>> list { {"John", 3}, {"Sean", 4}, {"James", 1} }; // Lookup 3 with "John" key, output to stdio std::cout << list["John"]; }
h79rfbju2#
你应该使用std::map。下面的例子来自this site。
std::map
#include <iostream> #include <iterator> #include <map> int main() { // Initializing empty map std::map<std::string, int> emptyMap; // Initializing map with items std::map<std::string, int> clothingStore {{"tshirt", 10}, {"pants", 12}, {"sweaters", 18}}; std::cout << clothingStore["sweaters"]; // Output: 18 }
2条答案
按热度按时间sd2nnvve1#
对于这个问题,您应该使用Map数据结构,而不是矢量。Map是键、值对的集合。在本例中,您需要一个字符串键和一个整数值。Here are the docs for using them in C++
h79rfbju2#
你应该使用
std::map
。下面的例子来自this site。