微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C ++:向量<pair <vector <int>,int>>

如何解决C ++:向量<pair <vector <int>,int>>

|| 这就是我的目标。
vector < pair<vector<int>,int> > var_name (x,pair <vector<int>(y),int>);
其中x是向量var_name的大小,y是对内的向量的大小。 上面的语句不起作用,因为对模板仅允许使用常量。如何将两个向量的大小分别设为x和y?     

解决方法

        
vector<pair<vector<int>,int> > var_name(x,make_pair(vector<int>(y),0));
    ,        简化为:
pair<vector<int>,int> value(vector<int>(y),0);
vector<pair<vector<int>,value);
如果您喜欢自己的语法,则应该这样做:
vector<pair<vector<int>,std::make_pair(vector<int>(y),0));
    ,        您可以使用
<utility>
中的
make_pair
来构建想要用来初始化
vector
的货币对。例如:
vector< pair<vector<int>,42))
或直接调用
pair<vector<int>,int>
构造函数(看起来像您正在尝试这样做):
vector< pair<vector<int>,pair<vector<int>,int>(vector<int>(y),0))
    ,        
pair<vector<int>,int>
是类型的名称。对于初始化,您需要一个值。 您可以通过调用该类型的构造函数来获得值(与在语句的顶层执行
var_name
的方式相同)。因为这是在表达式中内联创建一个值,而不是初始化变量,所以没有变量名,我们只写like12ѭ。
...
是构造函数的参数(将
(y)
放在尖括号内的任何位置都是不合逻辑的)。在我们的例子中,我们希望第一个值为长度为y的向量,第二个值为... 0,我假设。 这样我们得到15英镑。这相当笨拙,这就是为什么标准库提供模板函数
std::make_pair
的原因。通过使用自由函数(可以对模板参数进行推断)调用构造函数,可以解决以下事实:无法为构造函数推断模板参数。 因此,以上简化为ѭ17,当替换为该行的其余部分时,便给出了本杰明·林德利的答案。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。