原创 Windows中的寬字符串處理問題

在用VC做開發的時候,對於一些字符串,會經常調用一般_t、_T、T(),其實這些東西都和Unicode有關係。比如說,AfxMessageBox(_T("Error! Fail to connect the database!"));這裏

原创 DirectX 3D圖形

前面的一篇文章Direct 3D基礎介紹了一些基本概念,敘述瞭如何在顯示器上直接繪製具有立體感的2D圖形。上面的方法是不現實的,因爲預先根據透視原理人工計算出3D物體在顯示屏幕上顯示的座標然後再繪製的這種方式如果涉及從不同角度觀察的3D物

原创 字節跳動2019夏令營筆試總結

2019 ByteDance Summer Camp 19年夏令營,頭條請了天奇大神過去做talk,我是衝着天奇大佬去的,他是做DL編譯器的,跟我個人的研究方向很類似,所以很期望能跟他當面交流一下。 夏令營有兩次筆試機會,取成績最

原创 Windows多線程問題

進程和線程是操作系統裏面經常遇到的兩個概念,還有一個概念,是應用程序。應用程序包括指令和數據,在開始運行之前,只是分佈在磁盤上的指令和數據。正在執行的應用程序稱爲進程,進程不僅僅是指令和數據,它還有狀態。狀態是保存在處理器寄存器中的一些值

原创 Windows 多進程通信API總結

在一個大型的應用系統中,往往需要多個進程相互協作,進程間通信(IPC,Inter Process Communication)就顯得比較重要了。在Linux系統中,有很多種IPC機制,比如說,信號(signal)、管道(pipe)、消息隊

原创 DirectX 3D紋理

紋理就是3D模型外表面上的圖案。在3D場景中紋理極大地增加了物體的真實性。紋理的本質是把平面圖形貼到3D物體表面。在Direct3D中紋理的x和y座標一般稱爲Tu和Tv座標,紋理座標範圍都是0.0-1.0。如果知道一個面的頂點座標,使面的

原创 DirectX 3D燈光和材質

前面所介紹的東西都假設模型有自己的顏色,即認爲模型自己發光。其實自然界的大部分物體並不發光。當光線照射到物體上,物體吸收某些顏色的光,反射另一些顏色的光,反射的光的顏色就是我們所看到的物體的顏色。這裏的燈光是指光源,在Direct 3D中

原创 Max Sum

Leetcode上有一個Max Sum問題,題目的描述很簡單,即對於一個輸入的數組,求其連續子數組的最大和。比如說,A={ 6,-1,5,4,-7},那麼其連續子數組的最大和爲6 + (-1) +5 + 4 = 14. 分析: 這是很簡

原创 C++ String類的構造函數、拷貝構造函數的實現

構造函數、析構函數與賦值函數是每個類最基本的函數,在一些公司的面試中也會經常問到這方面的問題。每個類只有一個析構函數和一個賦值函數,但可以有多個構造函數(包含一個拷貝構造函數,其它的稱爲普通構造函數)。對於任意一個類A,如果不手動編寫上述

原创 2016中科院推免

最近一直在忙着推免的事情,有一段時間沒寫東西了。很感謝CSDN能夠提供一個平臺讓我在這裏寫一些與技術無關的東西,讓我在這裏肆意吐槽而不會把我拉進黑名單。 接到了軟件所面試的通知,就過去了。15號下午的機試題目不難,就三題,要求一個半小時之

原创 Linux流編程

與文件編程相比,基於流的IO方式最大特點就是先對緩衝區進行操作,具有較高的操作效率。流的操作過程與基於文件描述符的I/O操作過程十分類似:對流進行讀寫、定位操作等,最後關閉流。 在Linux中,對於流的打開就是建立一個緩衝區,將這個緩衝區

原创 strlen、strcpy、strcat等字符串處理函數的實現

最近參加不少小公司的筆試,都是關於C++開發工程師的崗位,考察的題目比較基礎。不少公司都考察了關於字符處理函數的實現,這些看起來很簡單,其實需要注意的地方還是很多的。這裏給出strlen、strcpy、strcat等函數的實現,以及指出需

原创 排序算法小結

網上關於排序算法的總結太多了,這篇文章就寫得不錯。 http://m.blog.csdn.net/blog/likaiwalkman/23713373 經典就是經典,個人覺得這些經典的算法被反覆研究幾十遍都不爲過。同時也參考了很經典的書籍

原创 流和文件的區別

前面介紹的Linux下的文件編程所涉及的操作方式都是不帶緩衝的I/O,因爲每次調用相應的函數比如說read、write等對文件進行操作的時候都會調用內核的系統調用,由於每次都要通過內核對文件進行操作,所以操作效率比較低,對於流編程來說,首

原创 共享內存和動態數據交換

仔細研究一下操作系統本身的機制,比如說內存管理、進程間通信等,越發覺得這些機制很精妙,很精深,perfect!越是經典的東西越是值得深究。。。 爲了讓具有依賴關係的線程或者進程協調工作,可以使用兩種技術,第一種是進程間或者線程間通信(in