gpt4 book ai didi

c++ - 用对初始化 vector

转载 作者:行者123 更新时间:2023-11-30 00:45:54 27 4
gpt4 key购买 nike

我在用对初始化 vector 时遇到了问题;我的代码似乎不起作用,adj_list[0][0].first 的结果不显示 1:

vector < vector <pair <int, int> > > adj_list;
adj_list.insert(adj_list.end(), { { (make_pair(1,20), make_pair(2,5)), (make_pair(1,7),make_pair(0,2)) }});

我想做的是创建一个邻接表(硬编码),结构如下:

adj_list[0] ---- make_pair(1,20), make_pair(2,5)

adj_list[1] ---- make_pair(0,7),make_pair(3,9)

我该怎么做?

最佳答案

您使用了错误的括号,这使得 (make_pair(1,20), make_pair(2,5)) 使用了逗号运算符,其值为 make_pair(2, 5)

你应该使用花括号:

adj_list.insert(adj_list.end(), { { {make_pair(1,20), make_pair(2,5)}, {make_pair(1,7),make_pair(0,2)} }});

但是,另一方面:这不是初始化
vector 已经被初始化为空 vector 。

这是一个初始化(你也不需要make_pair):

vector<vector<pair<int, int>>> adj_list = {{{1, 20}, {2,5}},
{{1, 7}, {0, 2}}};

关于c++ - 用对初始化 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41017316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com