C++重构数组

标签 c++ arrays

你好我是 C++ 的新手,我想创建一个像这样的数组,但在 C++ 中:

    rooms {

        1 { 'name' : 'Room1' },
        2 { 'name' : 'Room2' }

    }

有人可以帮我解决这个问题吗?适合你的时间坦克

最佳答案

定义一个 structclass 来表示房间数据并使用 std::vector , std::mapstd::unorderd_map 来存储房间:

#include <iostream>
#include <vector>
#include <map>

struct Room {
   std::string name;
   Room(std::string _name) : name(_name) {}
   Room() {}
};

int main() {
    std::vector<Room> rooms{{"Room1"}, {"Room2"}};
    std::cout << rooms[0].name << std::endl; // prints "Room1"

    std::map<int, Room> roomsMap{
        {1, Room{"Room1"}},
        {2, Room{"Room2"}}
    };
    std::cout << roomsMap[1].name << std::endl; // prints "Room1"
    return 0;
}

关于C++重构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39349966/

相关文章:

arrays - 如何避免从现有数组重复构造固定大小的数组?

c++ - 0x800706F7 - stub 在服务器 2008 上收到错误数据

c++ - MFC CEdit 将非ascii字符转换为ascii

arrays - 如何在数组中存储带有空格的元素?

java - 调用抽象类列表中的类的函数

c - 将数据添加到从循环内的结构读取的数组中

javascript - Jquery/Javascript 从具有最高属性值的数组中删除条目

c# - 以编程方式卸载掌上电脑程序

c++ - 是否存在比较不比较完整对象状态的常规类型的概念名称?

c++ - 在 Apple llvm 4.1 上使用 libc++ 与 libstc++ 时,c++11 支持的确切差异?