我也行運營++後綴不宣
while (prefix_length < 3 && equal(*vec1++, *vec2++)) prefix_length++;
,但是當我運行線,我得到的
no 'operator++(int)' declared for postfix '++' [-fpermissive]
錯誤。
代碼有什麼問題?
我也行運營++後綴不宣
while (prefix_length < 3 && equal(*vec1++, *vec2++)) prefix_length++;
,但是當我運行線,我得到的
no 'operator++(int)' declared for postfix '++' [-fpermissive]
錯誤。
代碼有什麼問題?
如果vec1
和vec2
是vector
s,則它們不具有增量運算符。他們是容器。你需要使用迭代器遍歷它們。喜歡的東西:
auto it1 = vec1.cbegin(),
it2 = vec2.cbegin();
while (prefix_length < 3
and it1!=vec1.cend()
and it2!=vec2.cend()
and equal(*it1++, *it2++))
++prefix_length;
舊的'&&'有什麼問題?雖然,展示瞭如何使用迭代器的+1。 –
此外,如果你正在處理像載體或列表的容器,然後以一個元素穿越到另一個你需要一個Iterator。您也可以通過調用vec1.at(I ++)和vec2.at(I ++)來訪問元素。然後比較這些元素。
是prefix_length對象還是基元? –
@LukeB。 int prefix_length – POD
'str1'和'str2'是否定義了postfix ++?您可能需要製作SSCCE。 – Rapptz