"Operator mismatch" C++ 中的错误

"Operator mismatch" error in c++

本文关键字:错误 C++ Operator mismatch      更新时间:2023-10-16

我正在创建图形v的转置并将其保存在g2中。vg2都是同一类型,因此g2将保存图形的转置。

下面,vvector<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);
^    

你们能帮帮我吗?

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);
}
}

我希望这会有所帮助。