Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向量与字符串C++_C++ - Fatal编程技术网

向量与字符串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];
        }
    }