gpt4 book ai didi

c++ - 无法访问 vector 元素?

转载 作者:行者123 更新时间:2023-11-28 08:25:08 24 4
gpt4 key购买 nike

我有这个代码

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

watch 截图如下: alt text

最佳答案

代码似乎没有任何问题。几乎每个人都认为您的意思是编译错误,但 ybungalobill 指出,visual studio 的调试器不支持检索运算符的结果。

如果您的程序按照您的预期进行,则无需担心。您的程序可以很好地访问 vector 元素,即使您的调试器有点困惑。

要让您的调试器报告该值,请尝试像这样设置 watch :((a[1])._Myfirst)[0]根据此线程中的建议:http://social.msdn.microsoft.com/forums/en-US/vsdebug/thread/c09f4fe4-4783-4dbb-8d36-85489fa2a4ae

关于c++ - 无法访问 vector 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com