亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

第一次移植出現的問題小結

2019-11-11 06:21:15
字體:
來源:轉載
供稿:網友

    在快放假的前兩三個星期,移植公司一個大神負責的項目的代碼,我第一次接觸這種一個函數就有一千多行的代碼,有點大開眼界啊同時忙到飛起!大神就是不一樣!他本來在windows下寫的是C風格的,然后我先將這些直接放在一個類里測試了一遍,然后將其轉成C++風格的,最后再在linux上調試測試對比。

    這次的移植讓我明白了一個問題,原來移植不只是復制粘貼,那么就不叫做移植了。然后就是找問題找bug是一個漫長的調試過程,還有就是有時候通過調試知道了是在某一行出現了問題,但真正導致出問題的不是這一行,或者不是這一行附近的一些行,因為這些行邏輯和語法上都沒有任何問題。真正的問題出現在之前不報錯的某一行或者某些行中,經過一定時間導致了內存泄漏,感覺內存泄露真的是個不好找的問題。

    我出現的一些問題,總結如下,怕以后自己忘記:

1、vector.clear()之后導致的下標超出問題(特別是在循環判斷中)

        比如在一個vector的循環中有一個判斷,滿足這個判斷就clear這個容器,那么下一次再循環時,容器里面什么都沒有,所以不能訪問容器某個位置的元素了,這樣會報下標超出的錯。

2、vector.erase()導致的迭代器失效問題

        erase語句會返回一個迭代器,比如現在對第三個位置的元素進行erase,那么內部是第四個位置的元素自動填補上來,會移到第三個位置處,所以返回的仍然是第三個位置處的迭代器,但這個迭代器指的元素已經是下一個元素了而已。

       我本來是這樣子修改的:

for(vector<int>::iterator it=vec.begin();it!=vec.end();it++){   if(*it==0){      it=vec.erase(it);      if(it==vec.end())         break;      else         continue;   }   ......}      這樣子沒有語法錯誤,但它漏掉了元素,因為erase返回的本來就是下一個元素了,還進行it++就是下下個元素了,所以漏掉了一些元素,沒有達到遍歷所有元素的效果。后來我修改成新定義一個迭代器:vector<int>::iterator iter=vec.erase(it);然后不用這個迭代器,當然it++也會跳過 但我后面想辦法不讓它跳過,總之也搞定了。但這樣子老板不放心。

最后老板說將所有滿足if的需要刪掉的元素的位置用一個數組保存起來,在循環結束后,對vector里的每個元素進行遍歷,如果這個元素的下標不是之前的數組里的,那么就保存這個元素到另一個新容器中,否則不保存這個元素,對下一個元素下標進行判斷。老板說這樣最安全。3、memset不能給類清零,最好只給數組或結構體清零

      本來是一個包含string和int的結構體,結果我用memset對這個結構體進行清零,后來報錯了。原來不能對類、包含類的數組或結構體進行清零。因為類有自己的一套方式。

4、linux函數聲明和定義時的默認實參與windows上的有點不一樣

     如果我沒記錯,windows上函數聲明和定義時都可以寫上默認實參的值,但linux上卻是在聲明時寫了默認實參的值在定義時就不能寫了。

5、windows轉成linux時同樣的代碼不能跑是格式問題

     在windows和linux之間進行轉換,好像有格式問題,自動的??梢杂糜浭卤静榭?#26684;式被轉成了什么格式,轉到適合各自系統的再保存一遍就可以了。

6、windows下sort()函數自定義比較規則時

     sort( ,,)如果第三個參數是個返回bool型的函數f(),如果這個函數是個全局的函數,那么直接用它的名字做第三個參數就是了,就代表指向函數地址的指針;如果這個函數是某個類的成員函數,那么一定要加類作用域限定符,不然找不到的。

//sort(AlgaePRiority.begin(), AlgaePriority.end(), &EcologyMath::SortForVectorByPriority|);//windows:類名::函數名

7、linux和windows下使用三個實參的sort()函數調用形式不一樣的問題

      windows下調用三個參數的sort()函數就是第三個參數直接用函數名即可;但linux下不是 :

sort(AlgaePriority.begin(), AlgaePriority.end(), bind(&EcologyMath::SortForVectorByPriority,this,_1,_2));//linux	//sort(AlgaePriority.begin(), AlgaePriority.end(), &EcologyMath::SortForVectorByPriority|);//windows

8、又犯了個傻問題 聲明幾個同類型指針時我竟然并排聲明

      iplImage*  img1;

      IplImage*  img2;

     應該這樣才對嘛。

9、Alt加左箭頭表明回退  Ctrl加Z也表示回退 但兩種回退有點不同  Ctrl加/表明注釋  cvSobel()在轉化為Sobel()時的問題還要加句

 convertScaleAbs

10、還有別的我寫的傻問題 比如new了沒delete啊 boundingRect函數的問題 while里我本來還寫了個死循環  還有C風格的尋找凸包和凹陷檢測時最遠點轉化為C++風格時的問題。

11、opencv3.1和opencv3.2加載SVM分類器的函數放的位置不一樣了

//opencv3.1	Ptr<ml::SVM> fusizao_svm;	fusizao_svm = ml::SVM::create();	fusizao_svm = ml::SVM::load<ml::SVM>("fusizao_svm.xml");//opencv3.2	Ptr<cv::ml::SVM> fusizao_svm;	fusizao_svm = ml::SVM::create();	fusizao_svm = Algorithm::load<cv::ml::SVM>("fusizao_svm.xml");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩高清电影好看的电视剧电影| 久久这里只有精品视频首页| 久久五月天综合| 韩国19禁主播vip福利视频| 青青久久av北条麻妃黑人| 国产aⅴ夜夜欢一区二区三区| 亚洲午夜精品久久久久久久久久久久| 国产日韩欧美电影在线观看| 亚洲已满18点击进入在线看片| 国产精品美女在线| 亚洲欧美另类国产| 日韩欧美在线一区| 欧美激情欧美激情| 国产美女久久精品| 亲子乱一区二区三区电影| 国产有码在线一区二区视频| 日韩精品视频免费在线观看| 日本国产精品视频| 成人免费视频在线观看超级碰| 国产精品极品美女在线观看免费| 亚洲bt欧美bt日本bt| 欧美精品国产精品日韩精品| 午夜精品一区二区三区在线视频| 日韩av一区二区在线观看| 日本国产一区二区三区| 3344国产精品免费看| 亚洲国产一区二区三区四区| 狠狠久久五月精品中文字幕| 久久精品国产v日韩v亚洲| 精品国产91久久久久久老师| 国产精品扒开腿做| 色多多国产成人永久免费网站| 久久精品国产99国产精品澳门| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人国产精品一区二区| 96pao国产成视频永久免费| 亚洲美女又黄又爽在线观看| 国产一区二区三区精品久久久| 日韩毛片在线观看| 国产午夜精品一区二区三区| 亚洲视频一区二区三区| 韩国日本不卡在线| 亚洲成色777777女色窝| 亚洲а∨天堂久久精品喷水| 国产精品永久免费观看| 欧美日韩国产精品一区二区不卡中文| 欧美国产日韩二区| 欧美丰满少妇xxxxx做受| 久久男人资源视频| 国产日韩欧美自拍| 亲爱的老师9免费观看全集电视剧| 欧美性视频精品| 欧美日韩精品在线视频| 日韩在线www| 中文字幕无线精品亚洲乱码一区| www.久久草.com| 自拍偷拍亚洲欧美| 亚洲第一视频在线观看| 国产精品久久久久高潮| 欧美乱人伦中文字幕在线| 欧美国产极速在线| 成人在线精品视频| 久久久99免费视频| 亚洲视频在线观看视频| 亚洲大胆美女视频| 欧美午夜视频在线观看| 成人在线视频网| 日本成人黄色片| 懂色av影视一区二区三区| 91成人国产在线观看| 国产成人精品久久二区二区91| 亚洲精品国产精品国自产在线| 国产日韩欧美视频| 欧美激情日韩图片| 国产精品久久久久7777婷婷| 亚洲一区美女视频在线观看免费| 国产精品网站大全| 91精品国产综合久久香蕉922| 国产亚洲美女精品久久久| 91色视频在线观看| 国产欧美一区二区三区在线看| 日韩一区二区福利| 97精品视频在线观看| 欧美成人免费va影院高清| 欧美日韩国产麻豆| 91av在线国产| 夜夜嗨av色一区二区不卡| 国产91色在线播放| 欧美丰满老妇厨房牲生活| 国产精品欧美激情在线播放| 福利一区视频在线观看| 国产人妖伪娘一区91| 国产成人一区二区在线| 主播福利视频一区| 国产欧美精品在线播放| 中文字幕亚洲一区在线观看| 美日韩精品免费视频| 日韩欧美999| 一区二区三区回区在观看免费视频| 国产91露脸中文字幕在线| 欧美日韩美女在线| 亚洲男女自偷自拍图片另类| 7777精品视频| 国产精品久久久久福利| 欧美大片在线看免费观看| 久久中文字幕在线| 国产精品色视频| 欧美三级欧美成人高清www| 亚洲精品美女视频| 久久精品一本久久99精品| 狠狠色香婷婷久久亚洲精品| 亚洲在线一区二区| 综合网日日天干夜夜久久| 国产亚洲视频在线| 日韩中文综合网| 欧美性高潮床叫视频| 欧美日韩成人精品| 亚洲精品91美女久久久久久久| 久久久国产精品x99av| 亚洲免费成人av电影| 亚洲欧美自拍一区| 久久精视频免费在线久久完整在线看| 欧美精品一本久久男人的天堂| 日韩欧美一区二区三区久久| 欧美激情2020午夜免费观看| 久久视频在线视频| 国产亚洲福利一区| 亚洲欧美国产一区二区三区| 一区二区三区www| 136fldh精品导航福利| 国产91色在线免费| 亚洲色无码播放| 一本一本久久a久久精品牛牛影视| 久久综合久中文字幕青草| 国产成人一区二区三区电影| 亚洲欧美另类自拍| 日本欧美在线视频| 亚洲欧洲视频在线| 国产精品美女主播在线观看纯欲| 欧美成人免费视频| 不卡av在线播放| 亚洲国产精品网站| 久久国产精品偷| 欧美午夜精品久久久久久久| 欧美国产第一页| 亚洲最新视频在线| 亚洲天堂av图片| 久久成人18免费网站| 国产精品久久久久久av下载红粉| 久久亚洲综合国产精品99麻豆精品福利| 最新国产成人av网站网址麻豆| 亚洲国产91色在线| 亚洲国产精彩中文乱码av| 黄色一区二区三区| 亚洲天堂av高清| 精品久久久久久久中文字幕| 亚洲精品国精品久久99热| 欧美大尺度在线观看| 欧美日韩国产中文精品字幕自在自线| 日韩在线资源网| 欧美成人四级hd版| 免费不卡欧美自拍视频| 日韩成人av一区| 亚洲女人天堂色在线7777|