int
main()
else
}
查閱後,知道不同編譯器對cin.sync()具體實現不同,可能vs2017的實現並不是銷毀輸入緩衝區,使用cin.ignore()成功清空輸入流。
參考見:
class
test
private
:test()
~test()
};intmain()
簡單的餓漢單例模式實現,餓漢單例模式本身就是執行緒安全的:
class
test
private
:test()
~test()
private
:static test testinstance;};
test test::testinstance;
intmain()
1) 因為testinstance
是靜態變數,儲存在靜態區,因此保證了該物件的唯一性,而不會被例項化多次。
2) 當析構函式宣告為private
時,無法在棧上例項化物件,因此只能考慮通過在類的內部使用靜態方式構造,或者new
在堆記憶體中,再使用乙個成員函式來釋放資源如delete this;
。
3) 但單例模式不需要手動去釋放資源(即呼叫析構函式)。因為它只例項化乙個物件,不會在執行期產生記憶體洩漏。程式結束時,作業系統會自動釋放程序占有的全部資源,包括記憶體資源。
shared_ptr<
uint8_t
> spdata=make_shared<
uint8_t
>
(new
uint8_t
[datalen],[
](uint8_t
* p)
);
#pragma pack(1)
typedef
struct tagtestpack testpack;
#pragma pack()
記得#pragma pack(1)後還原為原來的對齊方式,同時可以使用#pragma pack(push,x)/#pragma pack(pop)。
ifstream ifs
("file_path"
, ios::binary);if
(!ifs)
//獲得長度
ifs.
seekg(0
, ios::end)
;//指標移動到檔案末尾
streampos pos = ifs.
tellg()
;//返回指標到檔案頭的距離 即檔案大小
int filelen = pos;
cout <<
"file size: "
<< filelen << endl;
ifs.
seekg(0
);//返回檔案頭
返回檔案頭
char
* srcdata =
newchar
[filelen]()
; ifs.
read
(srcdata,filelen)
;
Shiro的一些知識點記錄
1.subject.isauthenticated 本質上會根據是否讀取到session判斷是否登入,對分布式系統的改造,可以通過sessiondao去快取中讀取。可以從 defaultwebsecuritymanager defaultwebsubjectfactory.createsubject...
C 的一些知識點
include using namespace std 內聯函式,交換兩個數的值 建議直接定義,不用先在開頭宣告再在後面定義 inline void swap int a,int b int main int p newint 分配1個int型的記憶體空間 delete p 釋放記憶體 int p ...
go 的一些知識點的記錄
go env go111module on goarch amd64 gobin users kyle go bin gocache users kyle library caches go build goenv goexe goflags gohostarch amd64 gohostos da...