考研結束了

       考研結束了,下一屆就輪到我們了,今天還跟同學聊了考研的事,我對考研政治不感冒,爲什麼要叫我們學政治?爲什麼要把這種信仰強加給我們?而那些申請國外研究生的同學就不用學了,憑什麼?這真的很矛盾。我以後想搞技術。看了王道論壇上大家發的那些計算機試題,我覺得找工作的同學也應該準備,到公司裏同樣也可以研究數據結構和算法,不必總是沉浸在考研試題上,公司也是很強大的,更活!英語,我現在用到英語的地方就是喜歡用英文的谷歌搜索,國內問的技術問題外國人早就問過了,於是經常轉到stackoverflow上,上面的回答者很有耐心,專業!比百度知道強。數學,我挺喜歡的,我的博客裏有一個欄目就是Mathematics,自己的收藏夾裏也收藏了很多國外不錯的數學網站。想想高考,三年前的今天,2010年年初那時,正在準備一模,絕對地高度繃緊狀態。三年真的挺快的,高三我絕對忘不了,那些人,那些事。大學這兩年半,我的印象就是上課,自習,宿舍,很平淡,偶爾的活動也沒什麼太值得留念的,一般。今天考研結束後,教室的座位都被佔完了,有的人雷聲大,雨點小,我絕不會這樣的!這是自欺欺人。兩年半的學習過程中有的學科我也沒有能駕馭住,但是考研來了,就不能犯糊塗了,一定要做好充分的準備!等到考研前一天自己也就有底了,也不會緊張了。我猜有的人會在考研前幾天像熱鍋上的螞蟻,想到還有什麼什麼沒看,再來着急,那也已經沒用了。先寫到這吧!


2013/9/1

       今天晚上沒去自習,昨晚在數學吧問了一個問題,很快就得到了答覆,吧裏面那些十幾歲的小孩真牛,數學帝!逛啊逛,轉到了算法吧,看到有個人發了篇排序的文章,叫 flash sort ,是桶排序的改進,於是又轉到了維基百科,感覺跟前幾天看的插值查找在原理上有些相似,都利用了關鍵字的大小,有些啓發式的意味。看完之後,發現下方有張排序算法的列表,裏面有種並行的排序算法,於是又看起來了,我還想着去自習呢。看得懵裏懵懂,最後提供了個 Python 的程序實現,於是我就打開 VS,準備快速用 STL 實現一下,看看運行結果,改寫完畢,編譯沒通過,提示的錯誤是“ error C2440: “初始化”: 無法從“std::_Vector_iterator<_Myvec>”轉換爲“int” ”,雙擊它,跳到了令人討厭的頭文件中,我想知道在我寫的程序中是哪個地方錯了!看這個錯誤是迭代器用錯了,我又排查了程序中使用迭代器的代碼,刪了還是不行,於是百度、谷歌之,最後還是無濟於事,我只好在程序中把所有使用迭代器的代碼都刪了,一行一行地排查,看看哪些地方涉及到了迭代器,終於,終於!找到了!是 vector.insert() 方法使用錯了,我想連接兩個 vector,用區間做參數,卻未給出目的迭代器,以爲默認是 end(),少了個參數,重載決議時編譯器根據了參數個數,於是必須把傳的迭代器轉換爲 int(這是 insert() 的一個版本),問題就出在這,其實我還是怪編譯器,它沒指出客戶端代碼哪個函數出錯了,它應該把調用棧給顯示出來!浪費了我大量時間。額,剛剛我又查了下,原來那一大堆出錯信息就是調用棧,還是我錯了。。。如下所示:

1>d:\program files\microsoft visual studio 10.0\vc\include\xmemory(208): error C2440: “初始化”: 無法從“std::_Vector_iterator<_Myvec>”轉換爲“int”
1>          with
1>          [
1>              _Myvec=std::_Vector_val<int,std::allocator<int>>
1>          ]
1>          沒有可用於執行該轉換的用戶定義的轉換運算符,或者無法調用該運算符
1>          d:\program files\microsoft visual studio 10.0\vc\include\xmemory(280): 參見對正在編譯的函數 模板 實例化“void std::allocator<_Ty>::construct<std::_Vector_iterator<_Myvec>>(int *,_Other &&)”的引用
1>          with
1>          [
1>              _Ty=int,
1>              _Myvec=std::_Vector_val<int,std::allocator<int>>,
1>              _Other=std::_Vector_iterator<std::_Vector_val<int,std::allocator<int>>>
1>          ]
1>          d:\program files\microsoft visual studio 10.0\vc\include\vector(668): 參見對正在編譯的函數 模板 實例化“void std::_Cons_val<std::allocator<_Ty>,int,std::_Vector_iterator<_Myvec>>(_Alloc &,_Ty1 *,_Ty2 &&)”的引用
1>          with
1>          [
1>              _Ty=int,
1>              _Myvec=std::_Vector_val<int,std::allocator<int>>,
1>              _Alloc=std::allocator<int>,
1>              _Ty1=int,
1>              _Ty2=std::_Vector_iterator<std::_Vector_val<int,std::allocator<int>>>
1>          ]
1>          d:\program files\microsoft visual studio 10.0\vc\include\vector(688): 參見對正在編譯的函數 模板 實例化“void std::vector<_Ty>::emplace_back<std::_Vector_iterator<_Myvec>>(_Valty &&)”的引用
1>          with
1>          [
1>              _Ty=int,
1>              _Myvec=std::_Vector_val<int,std::allocator<int>>,
1>              _Valty=std::_Vector_iterator<std::_Vector_val<int,std::allocator<int>>>
1>          ]
1>          d:\program files\microsoft visual studio 10.0\vc\include\vector(675): 參見對正在編譯的函數 模板 實例化“std::_Vector_iterator<_Myvec> std::vector<_Ty>::emplace<std::_Vector_iterator<_Myvec>>(std::_Vector_const_iterator<_Myvec>,_Valty &&)”的引用
1>          with
1>          [
1>              _Myvec=std::_Vector_val<int,std::allocator<int>>,
1>              _Ty=int,
1>              _Valty=std::_Vector_iterator<std::_Vector_val<int,std::allocator<int>>>
1>          ]
1>          h:\pe\pe\test.cpp(11): 參見對正在編譯的函數 模板 實例化“std::_Vector_iterator<_Myvec> std::vector<_Ty>::insert<std::_Vector_iterator<_Myvec>>(std::_Vector_const_iterator<_Myvec>,_Valty &&)”的引用
1>          with
1>          [
1>              _Myvec=std::_Vector_val<int,std::allocator<int>>,
1>              _Ty=int,
1>              _Valty=std::_Vector_iterator<std::_Vector_val<int,std::allocator<int>>>
1>          ]
最下面就是我調用的函數,顯示的是 insert(),這次漲姿勢了!吃一塹長一智!我該好好學習下 VS 這個 IDE了。

       再聊聊考研吧,暑假我看了兩個月的書,數學、英語、計算機。過兩天得上政治輔導班了。今天晚上沒去自習,我又有點怪罪自己了,今天的數學任務沒完成,英語單詞沒看。先寫到這裏吧。


2015.12.5

學習 Linux 有感

       好久沒寫博客了,不像以前隨便知道點什麼就寫到博客上,現在寫博客就想寫高質量的博客,比如花了很多時間和心思在一個主題上,然後才寫到博客上。

       現在想想,要說大學最後悔的事,我覺得是沒有接觸 Linux,大學時用了4年的 Visual Studio,每次要寫程序,先打開一個 VS,大概等個10秒鐘吧,纔出來編輯界面,編譯也是搞半天。現在完全不是這種方式了,在 Linux 上寫程序,講究的就是簡潔和快!從各種工具就可以看出。以前在 Windows 上搜索文件有個很厲害的工具叫 Everything,而在 Linux 上有個命令叫 locate,也是瞬間搜索。Linux(或是其他類 Unix 系統)上的很多命令在 Windows 上看來就是一個軟件。不過到現在我還是認爲 VS 是最強大的 IDE,其實寫 C/C++ 程序我只希望編輯工具有兩個功能:能向 VS 那樣正確快速地跳轉到變量的定義和補全。

發佈了80 篇原創文章 · 獲贊 11 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章