C++ 向量遍历<;向量<;配对<;int,int>&燃气轮机&燃气轮机;
我遇到了一个无法解释原因的情况。我有一个C++ 向量遍历<;向量<;配对<;int,int>&燃气轮机&燃气轮机;,c++,vector,std-pair,C++,Vector,Std Pair,我遇到了一个无法解释原因的情况。我有一个向量父项,表示特定单元格的父项。我有以下代码: // (1, 0), (1, 2), (1, 2) // (1, 2), (-1, -1), (1, 2) // (-1, -1), (2, 1), (-1, -1) vector<vector<pair<int, int> > > nums = { {make_pair(1, 0), make_pair(1, 2), make_pair(1, 2)},
向量父项
,表示特定单元格的父项
。我有以下代码:
// (1, 0), (1, 2), (1, 2)
// (1, 2), (-1, -1), (1, 2)
// (-1, -1), (2, 1), (-1, -1)
vector<vector<pair<int, int> > > nums = {
{make_pair(1, 0), make_pair(1, 2), make_pair(1, 2)},
{make_pair(1, 2), make_pair(-1, -1), make_pair(1, 2)},
{make_pair(-1, -1), make_pair(2, 1), make_pair(-1, -1)}};
int r = 0;
int c = 1;
while (nums[r][c] != make_pair(r, c)) {
cout << nums[r][c].first << " " << nums[r][c].second << endl; // 1, 2
r = nums[r][c].first; // 1
c = nums[r][c].second; // -1
cout << "r: " << r << " c: " << c << endl;
}
/(1,0)、(1,2)、(1,2)
// (1, 2), (-1, -1), (1, 2)
// (-1, -1), (2, 1), (-1, -1)
向量nums={
{make_-pair(1,0),make_-pair(1,2),make_-pair(1,2)},
{make_-pair(1,2),make_-pair(-1,-1),make_-pair(1,2)},
{make_-pair(-1,-1),make_-pair(2,1),make_-pair(-1,-1)};
int r=0;
int c=1;
while(nums[r][c]!=make_pair(r,c)){
cout在第一次迭代中
r=num[0][1].first = 1.
所以
c=num[1][1].second = - 1.
至此,您已经为r
分配了一个新值。在第一次迭代中,您将拥有c=nums[1][1]。第二次。此外,您不需要所有的make_pair()
noise。只需使用括号初始化:std::vectorblah{{{21,42},{101,404},}
(是的,它也适用于嵌套的vector
s。)你也可以结束这个问题,因为它对社区没有多大帮助。但是没有什么效果!