原创 百度面試題——摸黑白球

上網查資料的時候偶然間看到一道百度的面試題,題意大概如下: 一個桶,100個黑球100個白球,每次取走兩個球,如果同色則放入一個黑球,如果異色則放入一個白球。求最後只剩下一個黑球的概率。 思考過程: 一、首先排除了計算機模擬的思路,因爲最

原创 鏈表編輯器

可以用數組或者鏈表實現一個編輯器的功能,各自有各自的優缺點。 這裏只實現了單行的輸入、刪除、左移、右移功能,可以加入換行符實現多行文本編輯功能(但是鏈表實現這個不是很好設計,十字鏈表?這個最好還是使用數組),還可以加入文件的讀取和存儲實現

原创 簡述前綴運算符與後綴運算符

對於初學者,經常糾結的一個問題就是 for 循環中的循環量遞增過程中,到底是應該用前綴運算符還是後綴運算符。 邏輯首先談一下前綴運算符和後綴運算符有什麼區別:粗略的講, a++是當前值計算表達式,然後將變量a的值+1;而++a是先將a

原创 喫屎也要喫明明白白的屎——兩篇檢討的啓示

最近我的身邊兩位同志犯了一點錯誤,被處罰寫檢討,並在全**面前檢討。同樣是檢討,有的人就是爲了應付而寫的,但是這個過程其實可以幹很多事情,比如下面這兩位同志。 一: 錯誤使人清醒,反思使人進步,改正自我再重新出發,人總是容易原諒他人卻無法

原创 轉換函數和explicit

我們已經在不知不覺中使用到了轉換函數: Student stu1; stu1 = 95.0; 程序將使用構造函數來創建一個臨時的Student對象,並將95作爲初始化值。隨後,採用逐成員賦值方式將該臨時對象的內容複製到stu1中。這

原创 const修飾符的作用

先看看這個函數: const Class & function(const Class & c) const; 這其中有三處使用了 const 修飾符,許多同學只是知道 const 是用來修飾變量或者函數的修飾符,使被修飾的對象不能

原创 數組類模板中的[ ]運算符重載問題

絲毫不誇張,這真的是我在大便的時候想出來的...[speechless] 注:在《C++ Primer Plus》6th P577,書上光是使用瞭如下代碼,但是沒有分析爲什麼: //arraytp.h -- Array Templat

原创 運算符重載的特徵標順序

自己腦洞了一道面試題[smile][smile][smile]: 函數的特徵標有沒有順序關係? 答案是有的! 請看下面這個例子: //declaration friend String & operator+(const char *

原创 打字母小遊戲

鍵盤的 code:左37,上38,右39,下40。順時針排列。 同時KeyEvent類也給我們提供了上、下、左、右的常量:KeyEvent.VK_DOWN、KeyEvent.VK_RIGHT、KeyEvent.VK_UP、KeyEvent

原创 網易面試題——雙核處理

題目: 一種雙核CPU的兩個核能夠同時的處理任務,現在有n個已知數據量的任務需要交給CPU處理,假設已知CPU的每個核1秒可以處理1kb,每個核同時只能處理一項任務。n個任務可以按照任意順序放入CPU進行處理,現在需要設計一個方案讓C

原创 網絡通信

這是一個用Java實現網絡通信的例子,原理就是用Socket對象的輸入和輸出流實現接收和發送數據包。代碼如下: //MyClient.java import java.net.*; import java.io.*; public

原创 對象序列化

對象序列化的需求最早是爲了能夠在網絡上傳輸對象,傳統的各種類型的數據都是以二進制序列的形式在網上傳送的。如果想在網絡上發送Java對象,就需要把這個Java對象轉換爲字節序列,才能在網絡上傳送,然後接收方在接到數據後再將字節序列恢復爲Ja

原创 小米麪試題——Git樹分割點

題目: git是一種分佈式代碼管理工具,git通過樹的形式記錄文件的更改歷史,比如: base'<–base<–A<–A’ ^ | — B<–B’ 小米工程師常常需要尋找兩個分支最近的分割點,即base.假設git 樹是多叉樹,請實

原创 2016總結

時空命令物質如何運動,物質引導時空如何彎曲 每一年都會發生很多意想不到的事情,每到這個時候,都會有許多人寫下年終總結,有的爲了緬懷過去,有的爲了憧憬未來,有的只是盲目跟風。而我也選擇做這件事,有兩個原因:一,2016,對我來說確實是人生

原创 詳談模板實例化和具體化

這裏以類模板爲例,函數模板可以類比。 其實實例化(instantiation)和具體化(specialization)這兩個東西應該分開來談,實例化的是對象,而具體化的是模板(類似於聲明)。 template <typename T1