首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ partition 迭代器類型錯誤:cbegin/cend 改為 begin/end

     編輯:程式設計綜合問答

錯誤代碼


auto it = partition(vec.cbegin(), vec.cend(), func); // 錯誤

原因

cbegin()/cend() 返回 const_iterator,partition 需要可寫迭代器(iterator)以交換元素。

修正


auto it = partition(vec.begin(), vec.end(), func); // 正確

原則

  • 只讀算法(find, count, for_each)可用 cbegin/cend。
  • 修改容器結構算法(partition, sort, erase, insert)必須用 begin/end。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved