原创 C++ 併發中的無鎖編程

  基礎預備:c++ automic類型以及c++內存模型 https://blog.csdn.net/qq_35865125/article/details/105611985 https://blog.csdn.net/qq_3586

原创 PhysX配置開發環境

    1.下載 https://developer.nvidia.com/physx-sdk 點擊 DownLoad PhysX,會直接到gitHub: https://github.com/NVIDIAGameWorks/PhysX

原创 C++ 11 之 移動語義 左右值引用 完美轉發

  C++ 11 的 移動語義,左值引用 ,完美轉發 三部分相互關聯。閱讀 兩本數的相關章節即可完全掌握。   首先是,強烈推薦IBM XL編譯器開發團隊推出的《深入理解C++11》3.3章節,內容講解到爲,鞭辟入裏,自成系統,開發編譯器

原创 內存模型 & C++11的memory order

    做個矯正  直到我滿意。。。 《深入理解c++ 11》6.3.3節, by. Michael Wong 鞭辟入裏,耐心學習.... :: 如果只是簡單地想在線程間進行數據的同步的話,原子類型已經爲程序員已經提供了一些同步的保障。

原创 C++ 11原子類型 -- atomic_flag

    std::對象可以是兩種狀態之一:設置或清除,且須用ATOMIC_FLAG_INIT初始化,這會將該標誌初始化爲清除狀態(此標誌總是以清除狀態初始化的),如下: std::atomic_flag flag=ATOMIC_FLAG_

原创 C++ 之線程局部存儲

  線程局部存儲(TLS,thread local storage)是一個已有的概念。簡單地說,所謂線程局部存儲變量,就是擁有線程生命期及線程可見性的變量。 線程局部存儲實際上是由 單線程程序中的全局/靜態變量被應用到多線程程序中 被線程

原创 c++ std::transform函數

  小寫字母轉成大寫: std::string Name = "ftff"; std::string ver = version; std::transform(Name.begin(), Name.end(), Name.begin(

原创 sizeof計算類大小

  1. 空類   C++標準規定類的大小不爲0,空類的大小爲1。 當類不包含 虛函數 和 非靜態數據成員 時,其對象大小也爲1。 如果在類中聲明瞭虛函數(不管是1個還是多個),那麼在實例化對象時,編譯器會自動在對象裏安插一個指針指向虛函

原创 C++ 動態多態與靜態多態

  C++中有兩種多態: 動多態(運行期多態)和靜多態(編譯期多態),而靜多態主要通過模板來實現,宏也是實現靜多態的一種途徑。 模板不採用虛函數機制,所以所有調用在編譯期就可確定,因此它是靜態的。   動多態   基於繼承和虛函數,多態

原创 瓶子破碎的最高安全樓層

                                        我輩喜學劍,十年居寒潭。一朝斬長蛟,碧水赤三月 Description: 有n層的樓,有兩個強度相同的瓶子,設計一個辦法來檢測該種瓶子的可以承受的最高樓層。 

原创 C++ new和delete的實現原理

  new和delete的實現是通過調用malloc和free函數。 new和delete不僅承載着內存分配的功能還承載着對象構造函數的調用功能。   new 操作符的執行過程: 1. 調用operator new分配內存 ; 2. 調用

原创 從一個升序的數組中找出和爲sum的兩個數

    現有一個數組,內部元素採用升序排列,請找出其中的兩個數,其和爲sum。請使用最快的方法。   思路1: 雙指針遍歷。 #include <iostream> class arrayFind { public : arrayF

原创 C++ 標準庫 ordered_map原理

  侯捷老師: map的底層使用紅黑樹結構來實現,是有序的結構。 插入元素時,insert函數比[]更快.   內部紅黑樹的節點類型是pair,例如,定義map<int , string>,內部紅黑樹的節點類型是pair<int ,st

原创 5個生產者線程 5個消費者線程 共同操作一個vector 如何提高效率

  面試題目: 有5個生產者線程,5個消費者線程,有一個它們公共訪問的資源,使用vector存儲了這些資源, 生產者用於生產資源,消費者用於消耗資源,消費者也會從容器中進行刪除動作。 當前的方案是使用一個互斥鎖對vector進行保護,生產

原创 給定數字N,生成1,2,3...,N共N個不重複的隨機數

題目: 給定數字N,N>0, 設計一個隨機數生成器,運行該生成器N次,能夠不重複地生成1,2,..,N。 思路1: 最簡單的方法,首先定義一個隨機數生成器,其可以生成1-N範圍內的隨機數。     第一次運行時生成一個隨機數,然後記錄該