Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;将整数映射到布尔值数组_C++ - Fatal编程技术网

C++ C++;将整数映射到布尔值数组

C++ C++;将整数映射到布尔值数组,c++,C++,我一直在尝试创建一个从整数到布尔数组的映射。但是,下面的代码似乎不起作用 map<int, bool[]> myMap; bool one[] = {true, true, false}; myMap[1] = one; map-myMap; bool one[]={true,true,false}; myMap[1]=一个; 我不经常使用数组,这里似乎有严重的错误。有人能指出吗? 提前感谢。将这样的数组存储在映射中是行不通的,即使您可以按语法进行存储:即使真实数组超出范围,数组

我一直在尝试创建一个从整数到布尔数组的映射。但是,下面的代码似乎不起作用

map<int, bool[]> myMap;
bool one[] = {true, true, false};
myMap[1] = one;
map-myMap;
bool one[]={true,true,false};
myMap[1]=一个;
我不经常使用数组,这里似乎有严重的错误。有人能指出吗?
提前感谢。

将这样的数组存储在
映射中是行不通的,即使您可以按语法进行存储:即使真实数组超出范围,数组仍将保留在映射中。相反,存储
bool
的向量应该有效:

map<int, vector<bool> > myMap;
vector<bool> one {true, true, false}; // C++11 syntax
myMap[1] = one;
cout << myMap[1][0] << endl;
cout << myMap[1][1] << endl;
cout << myMap[1][2] << endl;
map-myMap;
向量一{真,真,假};//C++11语法
myMap[1]=一个;

使用C++0x,您可以这样编写:

#include <iostream>
#include <map>
#include <array>

int main() {
    std::map<int, std::array<bool, 3>> maparr {
        {1, {true, false, true}}, 
        {2, {false, false, true}}};

    for(auto& item: maparr) {
        for (auto& val : item.second) {
            std::cout << val << ' ';
        }
        std::cout << std::endl;
    }
    return 0;
}
#包括
#包括

#包括。它可能是您正在寻找的内容。

不要说:“代码不起作用”,试着告诉我们代码做了什么,以及您希望它做什么。它帮助我们帮助你。数组不是C++中的第一类。(或者,更好的是,一些合适的容器)。