如何通过迭代器访问向量中的嵌套对?

Posted

技术标签:

【中文标题】如何通过迭代器访问向量中的嵌套对?【英文标题】:how can I acces nested pair in a vector by iterator? 【发布时间】:2018-05-19 14:57:33 【问题描述】:

我正在尝试通过迭代器访问向量中的嵌套对,但在代码块 IDE 中出现错误,请帮助我如何做到这一点?你可以在附图中看到我的代码。

#include<bits/stdc++.h>
using namestace std;

vector<pair<int , pair<int, bool> > > graph[1000000];
vector<pair<int , pair<int, bool> > >:: iterator it;

queue<int> Q;
int cost[1000000], visit[1000000];


void BFS(int s)

    Q.push(s)
    visit[s] = 1;
    while(!Q.empty() 
        int v = Q.front();
        Q.pop();
        for (it=graph[v].begin(); it != graph[v].end(); it++) 
            if(cost[it->first] == -1) 
                cost[it->first] = it->second->first + cost[v];
                Q.push(it->first);

            

【问题讨论】:

欢迎来到 ***.com。请花一些时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请take the tour 和read about how to ask good questions。最后请学习如何创建Minimal, Complete, and Verifiable Example。 【参考方案1】:
it->first.second

因为它是一个指针,但它指向的对是对本身,而不是指针。

【讨论】:

以上是关于如何通过迭代器访问向量中的嵌套对?的主要内容,如果未能解决你的问题,请参考以下文章

对于 C++ Random Access Iterator(向量迭代器),迭代器之间的差异是如何计算的?

访问算法的 lambda 函数中的迭代器导致我出现分段错误

临时对象的生命周期:嵌套函数调用中临时向量的迭代器

如何仅使用 C++ 中的迭代器正确迭代 3D 向量? [关闭]

练笔-字符串,向量和数组6

通过向量迭代(使用迭代器)会导致 SIGSEGV 但在索引中使用时有效 - 那怎么样?