У меня есть этот кодНе удается получить доступ к элементу вектора?
vector <int> a[100001];
a[1].push_back(1);
if(a[1][0] == 1)
cout<<"OK!";
Но когда я пытаюсь получить доступ к 1 [0] говорится:
CXX0058: Error: overloaded operator not found
Полный код:
#include<stdio.h>
#include<vector>
using namespace std;
FILE *f=fopen("chei.in","r");
FILE *g=fopen("chei.out","w");
int t[100001],N,x,nr,k,d;
vector <int> a[100001];
int main(){
fscanf(f,"%d",&N);
for(int i=1;i<=N;++i)
{ fscanf(f,"%d",&x);
for(k=0;k<a[i].size();++k){
if(a[i][k]== x)
break;}
if(k==0 || (k==a[x].size() && a[i][k] == x)){
t[i]=x;
a[x].push_back(i);
}
}
for(int i=1;i<=N;i++){
if(t[i]==i || t[i]==0)
nr++;}
fprintf(g,"%d",nr);
return 0;
}
Вот скриншот часы :
Не обижайтесь, но тот факт, что вам нужен ответ быстро на самом деле не относятся нас. На самом деле, заявив, что такие вещи, скорее всего, заставят людей не отвечать вообще. – ereOn 2010-12-01 08:37:12
(GCC компилирует этот штраф.) Есть ли `vector & tmp (a [1]); if (tmp [0] == 1) ... `работает? –
dennycrane
2010-12-01 08:39:30
Мне нужно это быстро, потому что я участвую в онлайн-конкурсе, и мне нужно решить проблему, но я столкнулся с этой проблемой ... Конкурс заканчивается через 1 час, так что это поможет мне много, если я смогу решить это до тех пор. – Cristy 2010-12-01 08:40:28