2019 7 2,3秋招學習筆記

2021-09-24 21:57:57 字數 1598 閱讀 8570

當返回乙個物件不可被避免的時候,因返回的過程中產生的臨時物件,構造和析構仍被執行所以會影響到程式效率。但是可以通過特定的寫法,搭配支援「return value optimization」的c++編譯器,只需要付出乙個構造函式呼叫的代價即可完成返回值賦值。並且可以將函式宣告為inline,從而消除呼叫operator+時所花費的額外開銷。例:

inline

const rational operator*

(const rational &lhs,

const rational &rls)

對於乙個const變數,它擁有唯讀屬性,不可被修改,但是可以通過指標間接來修改他的值。

對於類內的const成員變數,不能在類的建構函式中初始化const,只能在初始化列表中初始化(初始化列表先於建構函式被執行)。

const修飾的區域性變數,在棧上分配空間。const全域性變數在唯讀儲存區(也叫資料段)分配空間。

int num =1;

intconst

*p1 =

#//底層const,指向常量的指標,常量不可被改變。

int*

const p1 =

#//頂層const,常量指標不可改變儲存的位址值。

靜態常量整數成員可以在class內直接給與初值。(stl p.37)

greater<

int>()

(6,4

);//形如這種呼叫,被叫做仿函式

分析:greater本身是乙個模板類,在乙個類名後面跟()表示生成當前類的乙個無名物件。第二個含參括號是greater類過載的function call操作符,也就是operator()。

tcpdump命令是一款sniffer工具,它可以列印所有經過網路介面的資料報的頭資訊,也可以使用-w選項將資料報儲存到檔案中,方便以後分析。

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第乙個引數的位置,用來過濾資料報的型別

(2)-i eth1 : 只抓經過介面eth1的包

(3)-t : 不顯示時間戳

(4)-s 0 : 抓取資料報時預設抓取長度為68位元組。加上-s 0 後可以抓到完整的資料報

(5)-c 100 : 只抓取100個資料報

(6)dst port ! 22 : 不抓取目標埠是22的資料報

(7)src net 192.168.1.0/24 : 資料報的源網路位址為192.168.1.0/24

(8)-w ./target.cap : 儲存成cap檔案,方便用ethereal(即wireshark)分析

x:列印包頭,以16進製制和ascii兩種方式列印包資料(不包括鏈路層頭)。最常用,想列印鏈路層頭,用-xx

s:快照長度,設為0即是預設的262144

n:不將host位址埠號等轉換成名字

l:標準輸出

p:一般情況下, 把網路介面設定為非』混雜』模式.

2019 7 10秋招學習筆記

解釋參考 include include include include using namespace std enum tag typedef struct node node typedef struct tagnode tagnode 前序遍歷,根左右 vector int preorder...

2019 7 1秋招面經學習筆記

樂觀鎖 是總是假定最好的情況,每次別人去拿資料都認為別人不會去修改,所以不用上鎖。但是會在更新的時候判斷一下在此期間別人有沒有去更新這個資料。實現方法有二,版本號機制和cas演算法。樂觀鎖是用於多讀的型別,這樣可以提高資料吞吐量。在多寫的情況下每次衝突發生,都會retry,反而降低效能。悲觀鎖總是假...

秋招和春招

和朋友最近聊起了秋招的心態,才發現以前想的事情有些過於簡單。找工作考慮的問題遠遠不是公司是否是大廠這麼簡單。一下的感想都有乙個大前提 我和我朋友都是普通人,不是聖人,沒有家財萬貫,未來都是需要自己一點一點積攢起來的。在這個大前提以外的人可以不用看了。首先是工作地點。1 你選擇的工作地點會決定你工作之...