我在我的節目的陳述做了兩個向量的元素的對比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