原创 C++函數中返回的對象是否進行優化運行結果

#include <iostream> using namespace std; struct Foo    {        Foo() { cout << "Foo ctor" << endl; }     Foo(const Foo

原创 stm32內存空間分配

1.stm32內存空間分配圖                                 Stm32的keil編譯連接如上圖所示。   編譯信息包含以下幾個部分:     1)Code: 代碼段,存放程序的代碼部分     2)R

原创 測試string類作棧內對象返回時其gcc和VC6.0編譯器的處理方式,以及測試move操作

/* 1.gcc編譯運行結果 [root@VM_0_7_centos test]# g++ --std=c++17 mystring.cpp [root@VM_0_7_centos test]# ./a.out 1 String

原创 CSDN怎麼轉載別人的博客(詳細)

_ 分類專欄: CSDN使用

原创 爲什麼很多人禁用拷貝(複製)構造函數

關於C++的拷貝構造函數,很多的建議是直接禁用。爲什麼大家會這麼建議呢?沒有拷貝構 造函數會有什麼限制呢?如何禁用拷貝構造呢?這篇文章對這些問題做一個簡單的總結。 這裏討論的問題以拷貝構造函數爲例子,但是通常賦值操作符是通過拷貝構造函數來

原创 map和vector的迭代器失效問題

當刪除一個STL容器(比如map, vector)中的某個元素時, 會引起迭代器失效, 所以, 我們務必提高警惕。  題目: 刪除map<int, int>中value爲5的倍數的元素。 該題看起來很自然很簡單, 實則有迭代器失效的陷阱。

原创 類對象大小測試2

#include <iostream> using namespace std; /* 創建對象A 創建對象BA 創建對象A 創建對象BA 銷燬對象BA 銷燬對象A 銷燬對象BA 銷燬對象A 創建對象C 創建對象BC 創建對象C

原创 TCP/IP面試相關問題

第一次握手:建立連接時,客戶端發送syn包(syn=x)到服務器,並進入SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。 第二次握手:服務器收到syn包,必須確認客戶

原创 redis與memcached的區別

Redis與Memcached的區別 傳統MySQL+ Memcached架構遇到的問題   實際MySQL是適合進行海量數據存儲的,通過Memcached將熱點數據加載到cache,加速訪問,很多公司都曾經使用過這樣的架構,但隨着業務數

原创 常見併發服務器方案

1. 循環式/迭代式服務器 1)短連接(如果是長連接則需要在read與write之間增加一個循環,那樣的話外層循環無法退出,接收不到其它連接請求,即只能服務一個客戶端); 2)單線程,無法充分利用多核CPU; 3)不適合執行時間較長的服務

原创 一些關鍵字或模板

一、dynamic_cast 使用dynamic_cast一個繼承層次內進行轉化的指針/引用。dynamic_cast依賴於RTTI信息,在轉換時,dynamic_cast會檢查轉換的source對象是否真的可以轉換成target類型,這

原创 c++ cout 輸出重載測試

#include <iostream> #include <vector>   using namespace std;   ostream& operator<<(ostream &out,vector<int>&src) {   

原创 徹底理解cookie,session,token

1、很久很久以前,Web基本上就是文檔的瀏覽而已,既然是瀏覽,作爲服務器,不需要記錄誰在某一段時間裏都瀏覽了什麼文檔,每次請求都是一個新的HTTP協議,就是請求加響應,尤其是我不用記住是誰剛剛發了HTTP請求,每個請求對我來說都是

原创 單機服務器支持千萬級併發長連接的壓力測試

應用場景 聊天室或即時消息推送系統等,因爲很多消息需要到產生時才推送給客戶端,所以當沒有消息產生時,就需要hold住客戶端的連接,這樣,當有大量的客戶端時,要hold住大量的長連接。   服務器配置 此處我們按照10M併發連接爲目標進行配

原创 C++ bind 使用

/* g++ bind.cc --std=c++11 bind 可綁定的內容 1.functions 2. function objects 即防函數 3. member functions 必須是某個對象的地址 4. data