Ошибка "несоответствие оператора" в C ++ - PullRequest
0 голосов
/ 30 июня 2018

Я создаю транспонирование графика v и сохраняю его в g2. И v, и g2 имеют одинаковый тип, поэтому g2 будет содержать транспонирование графика.

Ниже v имеет значение vector<int>v[1000]. Он состоит из списка смежных представлений графа.

vector<int> v[10000] = ...; // input: some matrix
vector<int> g2[10000]; // output: transposed matrix

for(int u=0;u<N;u++) //N is the number of vertices
    for(vector<int>::iterator it=v[u].begin();it!=v[u].end();it++) 
      g2[v[*it]].push_back(u);

Я получаю эту ошибку:

prog.cpp:74:8: error: no match for 'operator[]' (operand types are 'std::vector<int> [10001]' and 'std::vector<int>')
   g2[v[*it]].push_back(u);
    ^    

Ребята, не могли бы вы помочь мне?

1 Ответ

0 голосов
/ 30 июня 2018
vector<int> g2[10000];
for(int u=0;u<N;u++) //N is the number of vertices
{ 
      for(vector<int>::iterator it=v[u].begin();it!=v[u].end();it++) 
      {
         g2[u].push_back(*it);
      }
}

Надеюсь, это поможет.

...