C/C++ 如何判断vector中某值 是否存在!!

//gogo[0][4]根本就不存在,但我如何判断??
vector<string> run;
vector< vector<string> > gogo;
run.push_back("123");run.push_back("123");run.push_back("123");
gogo.push_back(run);
cout<<gogo[0][4].length();
if(gogo[0][4].length()==0)
{
cout<<gogo[0][2];
cout<<"yes";
}
上代码最实际。size()可以我早就结贴了。。。

gogo[0][4]根本就未申明,我想直接判断gogo[0][4]是否存在,而不是先去计算gogo[0]的个数或run的个数。

第1个回答  2011-04-18
我试了下你的代码,如果没有值话,去查length,运行程序肯定会中断。
所以要先判断你查的元素是否存在,然后再查。下面完整代码,copy下
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string>
#include <iostream>
using namespace std;

int main()
{
vector<string> run;
vector< vector<string> > gogo;
run.push_back("123");
run.push_back("123");
run.push_back("123");
gogo.push_back(run);

int len = run.size();
int i=0;
printf("想要查第几个元素:");

scanf("%d",&i);

if(i < len)
{
cout<<gogo[0][i]<<endl;
cout<<"yes"<<endl;
}
else
{
cout<<"您要查的vector中的元素个数只有"<< run.size()<<"个,你输入个数太大"<<endl;
cout<<"no"<<endl;
}
system("pause");
return 0;
}
第2个回答  2011-04-11
你可以从size()判断啊,
4超出了它的size()应该是3
相似回答