原创 c++三道題

class Solution { public: vector<int> decompressRLElist(vector<int>& nums) { vector<int> vec1 = nums;

原创 protobuf數據序列化後數據丟失(double數據變成0) 的bug引發的思考

protobuf是Google開發的一個開源序列化框架,類似XML,JSON,其最大的特點是基於二進制,比傳統的XML表示同樣一段內容要短小得多。通過protobuf,可以很輕鬆的調用相關方法來完成業務數據的序列化與反序列化。但是,pro

原创 什麼叫原子操作?使用這個東西有什麼目的?

一、我們要先搞明白什麼叫原子操作?使用這個東西有什麼目的? 原子操作:能夠操作最接近機器的指令,這個和硬件相關了,雖然和硬件相關,但我們的C11還是整合了這一切,讓原子操作有了共同的調用接口 目的:使用這個的目的說實話,就是讓你更瞭解機器

原创 誰能簡單說明下c++線程池怎麼用的

實現原理: 線程池一般要複用線程,所以如果是取一個 task 分配給某一個 thread,執行完之後再重新分配,在語言層面基本都是不支持的:一般語言的 thread 都是執行一個固定的 task 函數,執行完畢線程也就結束了(至少 c++

原创 reserve和resize的區別

reserve和resize的區別 1:存儲空間重分配的問題: 我們知道存儲空間分配的問題起源於容器對象的動態創建和連續存儲的特性;因此只有連續存儲的容器纔可能需要運行時的存儲空間分配; 典型就是vector,其他連續存儲容器也會部分地需

原创 c++ class "xxxx" does not name a type是怎麼一回事

declare class does not name a type 出現這個編譯錯誤主要有四個可能原因,現總結如下: 1.引用的類命名空間未包含 2.引用的類頭文件未包含 3.包含了頭文件,或者已經前置聲明瞭,則說明所引用的類名寫錯。

原创 python 類的封裝和保留方法

封裝Encapsulation:屬性和方法的抽象 屬性的抽象:對類的屬性(變量)進行定義、隔離及保護。 方法的抽象:對類的方法(函數)進行定義、隔離及保護。 目標是形成一個類對外可操作性和方法的接口。   class類 私有屬性:只能在類

原创 c++智能指針內存管理std::auto_ptr、 std::shared_ptr、std::weak_ptr make_shared

由於 C++ 語言沒有自動內存回收機制,程序員每次 new 出來的內存都要手動 delete。程序員忘記 delete,流程太複雜,最終導致沒有 delete,異常導致程序過早退出,沒有執行 delete 的情況並不罕見。 用智能指針便可

原创 棧解旋和異常處理

異常被拋出後,從try起,到異常被拋出前,這期間在棧上構造的所有對象,都會被自動析構,析構的順序與構造的順序相反這個過程被稱爲棧解旋 異常的基本語法 異常類 class My_exception { public: My_ex

原创 C++中string類型與char*相互轉換

有時候有string對象,但需要c-風格字符串,該如何辦呢?可以把string類型轉換成char*類型,這裏一般有以下三種方法: 1.c_str()方法 string name="James"; char *str=(char*)nam

原创 Python 第三方庫安裝方法

  數據分析使用這個:      

原创 互斥鎖與讀寫鎖的概念

一 點睛 先看看互斥鎖,它只有兩個狀態,要麼是加鎖狀態,要麼是不加鎖狀態。假如現在一個線程a只是想讀一個共享變量 i,因爲不確定是否會有線程去寫它,所以我們還是要對它進行加鎖。但是這時又有一個線程b試圖去讀共享變量 i,發現被鎖定了,那麼

原创 c++string字符串比較相等

#include <iostream> #include <string> #include <stdio.h> using namespace std; int main() { std::string h2 = "BU