我在我的节目的陈述做了两个向量的元素的对比C++声明编译器错误
if(!*(it2+3).compare(*(lines_in_file.begin())))
编译器错误我得到的是:
test_file.cpp:140: error: 'class __gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator<std::string> > >' has no member named 'compare'
it2
的类型是:
vector<std::string>::iterator it2=rec_vec.begin();
lines_in_file
类型是:
vector<std::string> lines_in_file=split(argv[2],',');
分割函数的声明是:
std::vector<std::string> split(const std::string &s, char delim)
我很困惑一个bit.already花了很多时间来思考。 任何人都可以帮忙吗?
就已经打破那堆积如山的表达。做数学运算:它比编译器更令人迷惑_YOU_,现在它需要_MY_时间来修复你的错误。 OT:我认为你正在重新创造差异算法。别。使用图书馆。 – sehe 2011-05-28 17:53:59
一个好的编译器会给出“不可读的代码”警告!你是否偶尔为空格键付钱? – 2011-05-28 17:54:57
不要使用'std :: string :: compare',使用'!='运算符。不要使用'*(lines_in_file.begin())'使用'lines_in_files.front()'。如果可能,尽量使用'const_iterator'(不知道这里的用例)... – 2011-05-28 18:32:18