cin
1 | string str; |
getline
getline一次讀取一行,換行字元不會被存入,讀取成功時回傳cin物件,eof時回傳eofbit
1 | string str; |
1 | string str; |
getline一次讀取一行,換行字元不會被存入,讀取成功時回傳cin物件,eof時回傳eofbit
1 | string str; |
1 | string name ("John"); |
1 | string name ("John"); |
這篇紀錄一些常用的STL字串操作,因為太多了所以分成幾篇列舉
1 | string s0("Initial string"); // Initial string |
assign可以為字串物件賦值,用法與constructor類似
more >>set即集合,特性為集合中的元素不會重複
STL中的set有點像只有key的map,在新增元素的時候會進行排列,若新增重複的元素則忽略,但結構跟行為其實差蠻多的
1 | // Member functions: |
output
1 | 1 |
Queue即先進先出(FIFO list),常用於排隊問題
STL內建之Queue:
1 | // Member functions: |
output
1 | 2 |
http://大報社.club/
之前期中考的時候壓力太大買了這個網域,一直不知道要做什麼,結果前幾天腦洞大開刻了這鬼東西…
這篇記錄一些碰到的困難跟解決方法
首先是音樂撥放的部分,本來可以直接用html5 audio tag處理,但是這樣不潮
後來是找了方法自訂播放器的樣式
方法大致上是用range input當成播放進度條,然後再加上撥放跟暫停的按鈕
可以再另外做聲音大小聲,但我懶,不過之後如果哪天腦洞又開了會做個加速鈕
參考資料: Create a Customized HTML5 Audio Player
再來是大報社的那個拋射特效,我是自己寫的,用到之前上計圖的時候用OpenGL做動畫學到的方法
簡單來說我讓他每隔一小段時間更新一次位置,位置的計算就是用高中學過的平面運動方程式
然後再隨機指定初速度跟射出的圖片,這邊嘗試使用了閉包,以下是主要的程式
1 | function parabola(v) { |
最近在調整作息,但還是有時候不小心寫一個小功能就弄到很晚,這裡的紀錄進度落後太多。
先紀錄一些零碎的事項,然後列一些需要詳細研究的東西在這篇。
上一篇之後增加的進度大致上有以下
這次在整合搜尋功能的時候,雖然之前在測試elasticsearch的時候已經設定過了
但重開機之後好像就跑掉了不知道為啥,於是我又重新設定了一遍
只是很多東西都忘記了又重投查一遍,這邊紀錄一下
elasticsearch是什麼有興趣的自己google看看
因為mongo本身的搜尋功能較弱,所以我用es來作為搜尋引擎
用mongo-connector為中介程式幫忙同步mongo跟es
es本身好像就已經可以作為資料庫使用了
但我對他的了解還不太夠,暫時還是先用mongo+es的方式
本來第三篇要寫mongodb的,但是今天沒心情寫(?
上一篇提到我好不容易把爬蟲用node搞出來了,但因為還是不太熟promise的關係,加上db操作之後還是碰到了一些問題,大崩潰Orz
於是我一氣之下就把整個專案砍了改用python寫我想了一下,會造成異步處理困難主要是因為http request的延遲跟不上,檔案還沒載完、爬蟲還沒跑完,就要寫入資料庫,我想了一個方法來解決這個問題,就是先把頁面都下載下來然後再跑爬蟲,用檔案IO的方式延遲會比較小一點
雖然下載檔案沒有先後次序的問題,但我想試試看python的multithreading所以就用python寫了,只有用到一個額外函式庫叫requests,可以簡化送http reqests的操作(原本的話要用內建的urllib來操作,比較不值關),事先先把系所列表先寫到一個檔案裡面,讀出來之後開multithreading去下載檔案
這篇就簡介一下threading的用法吧
開n個thread來跑run這個function
more >>今天居然用node把爬蟲寫出來了,覺得超不可思議的wwww
基本上爬蟲用同步的語言來寫會比較順暢一點,因為很常前後的步驟是有關連的,例如說要等到網頁整個載入完成才能開始爬資料,其實本來選js就是想試試看promise的用法,但是寫完之後還是奉勸大家,歹路不通走orz
這篇就來分享一下最後我使用的架構
promise如同前一篇簡介,可以將callback function從函式中抽離出來,避免層層堆疊的callback hell,promise寫出來的code大致上會長這樣(內容並非實際的code,只是示意而已)
1 | getDeptList().then((deptList) => { |
邏輯是,取得系所列表之後在將列表存入db中,並檢查是否儲存成功
more >>首先是久違的發文www雖然應該沒人看(
這學期應該是我大學最後一次選課,課程爬蟲這鬼東西我寫了不下三次了,第一次是用C#寫,那也是我第一次寫爬蟲,第二次是上次為了寫出漂亮的課程查詢(最後也沒多漂亮)而寫,然後就是這次了,這次是想要寫課表預排,浪打port過來的那個掛了,沒詳細去問發生什麼事情,不過那個也不是說非常好用,於是就又挖了個坑跳。
第二次的時候爬蟲是用node寫的,那次只有把系所代碼存起來而已,課程列表是即時爬的,但使用經驗非常的差,因為學校的網站load很慢,加上node爬蟲也沒有特別快,列表載入的延遲都是以數秒計算的,所以這次想要嘗試把資料存進資料庫,我選了之前一直很想用看看的mongodb,理所當然爬蟲語言還是選node,雖然用的語言一樣但是我重寫了,因為覺得之前寫得不是太漂亮。
至於我花了兩個小時接近快寫完的時候開始後悔為什麼要用node又是另一個故事了,文章結尾在講www
這次就來做個成大課程查詢的爬蟲筆記,repo的連結在這
node的爬蟲需要兩個套件:request
cheerio
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true