向量与字符串C++
为什么这段代码会放弃一个错误?我无法确定错误的原因。向量与字符串C++,c++,C++,为什么这段代码会放弃一个错误?我无法确定错误的原因。 错误:操作员不匹配!= 首先,您尝试将int与向量的迭代器进行比较 #include <vector> #include <iostream> #include <cstring> #include <string.h> using namespace std; int main() { vector<string> test; test.push_back("ya
错误:操作员不匹配!= 首先,您尝试将int与向量的迭代器进行比较
#include <vector>
#include <iostream>
#include <cstring>
#include <string.h>
using namespace std;
int main()
{
vector<string> test;
test.push_back("yasir");
test.push_back("javed");
for(int i=0; i!=test.end();i++)
{
cout << test[i];
}
}
如果使用C++11或更高版本,则可以将std::vector::iterator替换为auto
接下来,您将包括包含旧函数的函数,例如:strlen、strcpy。类似地,包含C样式的字符串
如果你想使用操作符
,如你已经提到过的,问题是,你试图在你的for语句的中间比较一个整数和一个迭代器。试试这个,从我的观点来看,它更直观
for (std::vector<string>::iterator i = test.begin(); i != test.end(); i++)
{
cout << *i;
}
请选择a并了解向量索引和迭代器之间的区别{std::cout@MABVT,它可以工作。感谢您对站点的引用。另外,std::string是在标题中定义的,而不是C样式的字符串。您的迭代错误。Change vector::iterator i=test.begin。另外,由于您正在迭代,cout行应该是:cout
for (std::vector<string>::iterator i = test.begin(); i != test.end(); i++)
{
cout << *i;
}
#include <vector>
#include <iostream>
#include <cstring>
#include <string.h>
using namespace std;
int main()
{
vector<string> test;
test.push_back("yasir");
test.push_back("javed");
for(int i=0; i<test.size();++i)
{
cout << test[i];
}
}