C++ 初始化向量对(位集,int)

C++ 初始化向量对(位集,int),c++,vector,std-pair,std-bitset,C++,Vector,Std Pair,Std Bitset,初始化时使用 vector<pair< int,bitset<p> > > arr; arr.push_back(make_pair(x,y)); vector>arr; arr.push_back(使_配对(x,y)); 但我有一个错误: “pair”不能出现在常量表达式中 vector<pair< int,bitset<p> > > arr; vector>arr; 如何生成一对位集int的向量?这里似乎“p”不

初始化时使用

vector<pair< int,bitset<p> > > arr;
arr.push_back(make_pair(x,y));
vector>arr;
arr.push_back(使_配对(x,y));
但我有一个错误:

“pair”不能出现在常量表达式中

vector<pair< int,bitset<p> > > arr;
vector>arr;
如何生成一对位集int的向量?

这里似乎“p”不是常数。我尝试了以下方法,效果良好:

const int p = 16;
vector<pair<int,bitset<p> >> v;
bitset<p> b = 0xfa2;
v.push_back(make_pair(10, b));
const int p=16;
向量v;
位集b=0xfa2;
v、 向后推(形成一对(10,b));
这里的“p”似乎不是常数。我尝试了以下方法,效果良好:

const int p = 16;
vector<pair<int,bitset<p> >> v;
bitset<p> b = 0xfa2;
v.push_back(make_pair(10, b));
const int p=16;
向量v;
位集b=0xfa2;
v、 向后推(形成一对(10,b));

缺少命名空间限定(
std::pair
)和/或
#include
?没有这些错误。两者都使用。缺少命名空间限定(
std::pair
)和/或
#include
?这些错误都没有。他们两个都用过。