Time of Update: 2018-07-25
轉載地址:http://hi.baidu.com/thewillreigns/blog/item/67e665c4296e69c038db492d.html char 和 unsigned char是無符號的 兩者都作為字元用的話是沒有區別的,但當整數用時有區別: char 整數範圍為-128到127( 0x80__0x7F), 而unsigned char 整數範圍為0到255( 0__0xFF ) 多數情況下,char ,signed char 、unsigned
Time of Update: 2018-07-25
補充: 不好意思, 非VC編譯器的Bug, 是我自己的錯誤。ToString()的傳回值是一個臨時string, 執行完 const char* szText = const_cast<Test&>(tst).ToString().c_str();後, 臨時string就會被銷毀, szText所指向的string內容已經被銷毀, 所以亂碼。至於,g++編譯, 輸出結果正確,
Time of Update: 2018-07-25
The C POSIX library is a specification of a C standard library for POSIX systems. It was developed at the same time as the ANSI C standard. Some effort was made to make POSIX compatible with standard C; POSIX includes additional functions to those
Time of Update: 2018-07-25
/*對磁碟檔案作如下操作:(1) 在磁碟上建立一個文字檔,該檔案中存放若干個實數;(2) 在磁碟上已有文字檔中,讀出若干個實數,並求出其中的最大數、最小數和平均值;(3) 向檔案追加記錄、瀏覽文字檔、將一個檔案複製到另一個檔案中(定義類來完成)。*/#include<fstream>#include<iostream> //在測試時發現不加之後cerr無法輸出using namespace
Time of Update: 2018-07-25
運用類的知識重新審視分數加法 /*1.分數相加,兩個分數分別是1/5和7/20,它們相加後得11/20。方法是先求出兩個分數分母的最小公倍數,通分後,再求兩個分子的和,最後約簡結果分數的分子和分母(如果兩個分數相加的結果是4/8,則必須將其約簡成最簡分數的形式1/2),即用分子分母的最大公約數分別除分子和分母。求m、n最大公約數的一種方法為:將m、n較小的一個數賦給變數k,然後分別用{ k,k-1,k-2,…,1}中的數(遞減)去除m和n,第一個能把m和n同時除盡的數就是m和n的最大公約數。
Time of Update: 2018-07-25
簡介 在c語言的prinf()中,可以格式的控制輸出。但是c++中的cout應該怎麼格式的控制輸出呢。 setw(n),控制預設寬度。 setw()只對其後面緊跟的輸出產生作用。若輸入的內容超過setw()設定的長度,則按實際長度輸出。預設靠右對齊。 setfill(char c),就是在預設寬度中如果已存在沒用完的寬度大小,則用設定的字元c填充。 left和right,更改對齊。預設的是靠右對齊。 fixed,使用小數計數法
Time of Update: 2018-07-25
今天在處理MAC地址時,遇到之前沒有注意的一個問題,特此記錄。 在需要字串格式化輸出的時候自然而然的想到了Format函數,MAC地址需要以兩位寬度十六進位形式輸出,所以我就直接寫了%x ,但是在實際輸出時遇到一個錯誤輸出格式變成了:·"fffffff0",應該是f0啊. 首先確定自己的程式沒有寫錯,然後簡單分析下,只要是0xf*這種就會變成上述的情況,,很明顯應該是進位或者符號位問題。
Time of Update: 2018-07-25
C++是______________語言,於1979年在____________________實驗室設計開發出來,進一步擴充了和完善了C語言,是_____________的程式設計語言。 #include<iostream>using namespace std;int main(){cout<< "hello world!" << endl;return 0;} 上面代碼是基本的C++程式設計架構,用的多了,便更加懂得。
Time of Update: 2018-07-25
統計輸入中每個值出現了多少次: int currVal = 0, val = 0;if (std::cin >> currVal) {int cnt = 1; while (std::cin >> val) {if (val == currVal)++cnt;else {std::cout << currVal << " occurs " << cnt <<
Time of Update: 2018-07-25
1)把所有DBG和ERR改成printf; 2)COMMOM_Malloc改成malloc; 3)COMMON_Free改成free; 4)所有的CHECK寫一個空的宏即可(原來作為參數合法性檢查); 5)編譯Ok; #ifndef __LIST_H__#define __LIST_H__#ifdef __cplusplus#if __cplusplusextern "C"{#endif#endiftypedef void*
Time of Update: 2018-07-25
C++不轉義顯示原始字串、 一般字串中用“ ”包著,如果要輸出一些特定的字元,需要逸出字元。原始字串就是不用轉義的情況下也能輸出特定的字元 格式[R"(要顯示的字串)"] cout << R"(Jim "king" like "\n" !)";Jim "king" like "\n" ! 原來的用逸出字元 cout <<
Time of Update: 2018-07-25
第1章 容器 第1條:謹慎選擇容器類型。 標準STL序列容器:vector、string、deque和list。 標準STL關聯容器:set、multiset、map和multimap。 非標準序列容器slist和rope。slist是一個單向鏈表,rope本質上是一“重型”string。 非標準的關聯容器hash_set、hase_multiset、hash_map和hash_multimap。 vector<char> 作為string的替代。(
Time of Update: 2018-07-25
容器 第1條:謹慎選擇容器類型。 標準STL序列容器:vector、string、deque和list。 標準STL關聯容器:set、multiset、map和multimap。 非標準序列容器slist和rope。slist是一個單向鏈表,rope本質上是一“重型”string。 非標準的關聯容器hash_set、hase_multiset、hash_map和hash_multimap。
Time of Update: 2018-07-25
剛接觸容器時,可以簡單的把他看做一個可以各種類型(struct也是可以的)的數組,思路和操作也和數組差不多,就是命令使用的有些區別 C++容器類的簡單介紹 一、原型與建構函式 Vector的原型可定義為 vector > 其建構函式為 vector() //空的 vector(al) //指定一種allocator vector(n) //用預設T()初始化n個元素 vector(n, val)
Time of Update: 2018-07-25
Gamasutra上有篇文章講得挺細的: Sponsored Feature: Behind the Mirror - Adding Reflection to C++ RTTI 在Class聲明後加入RTTI宏的做法幾乎快成各種引擎的標配了, 誰叫C++的rtti太弱來著. 之前只是認為自己實現RTTI的原因是dynamic_cast的效率不高和對象工廠的需要, 原來關掉這個編譯選項還可以減少佔用的記憶體 Field(
Time of Update: 2018-07-25
C++11 error: unable to find string literal operator 'operator" 一個簡單的宏 C++ #define LOG_INFORMATION(x, ...) LOG_ME("%s:%d, "x, __FUNCTION__,__LINE__, ##__VA_ARGS__)
Time of Update: 2018-07-25
來看看怎麼在C++中實現回調吧。 Method1:使用全域函數作為回調 在C語言中的回調很方便。當然,我們可以在C++中使用類似於C方式的回呼函數,也就是將全域函數定義為回呼函數,然後再供我們調用。 typedef void(*pCalledFun)(int *); void GetCallBack(pCalledFun parafun) { /*do something*/ }
Time of Update: 2018-07-25
在前面提到回調了,那麼現在就開始說委託吧。個人是這麼理解委託的,就是一件事你不做或者不能做或者不想做,那麼就委託給別人做,我只調用別人的函數介面就可以了,也就是我要實現一個功能,我只要介面,實際的實現委託給別人,突然有一天我要做的事的邏輯發生了變化,那麼我也不需要更改自己的調用,只需要被委託者更換一下邏輯就可以了。同時,如果在一定的場合下要調用很多相同形式的函數,那麼使用委託將很方便。
Time of Update: 2018-07-25
1、C#不支援多重繼承。 使用多重繼承可以使派生出來的類具有多重特性,使用緊湊的程式碼完成十分複雜的功能,但這樣不可避免的是代碼的調試和閱讀變得困難和煩雜。但是C#中支援介面Interface的多重繼承,在類中實現Interface中的介面函數就可以了。 2、在標準的C#中,不支援指標類型。
Time of Update: 2018-07-25
這個寫了蠻長時間的,主要是在想如何讓程式判斷不是一種排序後檢查是不是另一種排序,我想出的這個方法可能不是最優的,如果誰有更好的辦法,請留言告訴我。**僅給有需要的人以參考,如有錯誤請糾正我** #include<iostream>template<typename T>bool is_sorted(T arr[], int n){ T temp; int i; for (i = 0; i < n; i++)