Как пройти вектор > V [] - PullRequest
       65

Как пройти вектор > V []

0 голосов
/ 19 апреля 2020

Я пытаюсь передать vector<pair<long,long> > adj[n] в другую функцию, называемую short, но она выдает ошибку, но я уже писал такой код раньше, поэтому я не понимаю, почему это выдает ошибку

ошибка: недопустимый декларатор перед 'adj'

ошибка: ожидается ')' перед 'adj'

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

  void short(vector<pair<long,long> >adj[], int n){
    vector<long>dist(n+1,INT_MAX);
    vector<long>parent(n+1, -1);
    dist[1] = 0;
    parent[1] = 1;
    priority_queue<pair<long,long>,vector<pair<long,long> >,greater<pair<long,long> > > pq;
    pq.push(mp(0,1));
    vector<bool>flag(n+1, false);
    while(!pq.empty()){
        long u = pq.top().S;
        pq.pop();
        flag[u] = true;
        for(auto it = adj[u].begin(); it!=adj[u].end(); it++){
            long v = (*it).F;
            long wt = (*it).S;
            if(!flag[v] && dist[u] +wt < dist[v]){
                dist[v] = dist[u]+wt;
                pq.push(mp(dist[v],v));
                parent[v] = u;
            }
        }
    }
    print(parent, 1);
}



int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    long n, m;
    cin >> n >> m;
    vector<pair<long,long> > adj[n+1];
    long u, v, w;
    loop(i,m){
        cin >> u >> v >> w;
        adj[u].pb(mp(v,w));
        adj[v].pb(mp(u,w));
    }
    short(adj,n);
}

Ответы [ 2 ]

1 голос
/ 19 апреля 2020
void short(vector<pair<long,long> >adj[], int n){

Переименуйте функцию short во что-то другое. short - это фундаментальный тип C ++. Вы не можете использовать его в качестве имени идентификатора.

(Первоначально опубликовано как комментарий под вопросом. Добавление его в качестве ответа согласно this )

0 голосов
/ 20 апреля 2020

на самом деле, когда мы определяем вектор с некоторым размером, мы используем круглые скобки вместо этой квадратной скобки ...

vector> adj (n) .. это правильный формат ..

а также измените имя своей функции на другое, так как short - это ключевое слово в c ++

надеюсь, вы его получите:)

...