如何使用字符串索引向量(C++)?

jmp7cifd  于 2023-07-01  发布在  其他
关注(0)|答案(2)|浏览(158)

我想使用字符串索引一个向量,就像命名向量中的每个元素使用它的名称而不是索引它,就像在LUA中一样。
例如,在LUA中,您可以:

list = {
   "John" = 3,
   "Sean" = 4,
   "James" = 1
}

print(list["James"])

输出将等于1
我想要一个方法来做到这一点,但在C++。
我仍然没有尝试任何东西,因为我不知道从哪里开始,但我希望有一种紧凑的方法来做这件事,或者另一种替代方法可以帮助我解决我在C++中的问题。

sd2nnvve

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"];
}
h79rfbju

h79rfbju2#

你应该使用std::map。下面的例子来自this site

#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
}

相关问题