#include using std::cin;
using std::cout;
using std::endl;
int main()
所謂預設建構函式是指,當沒有初始化值作為引數的時候,物件調研的建構函式。
#include #include using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
都是空字串。string是類型別,都會呼叫預設建構函式。這和內建型別的初始化行為不同。
每次讀取一行文字
#include #include using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
每次讀取乙個單詞
#include #include using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
string型別的》操作符,只取第乙個非空格字元開始到第乙個空格字元為止。
getline擷取一行(不包括回車換行符),不刪除行首的空格字元。
#include #include #include #include #include using namespace std;
int main()
if(a.size() == b.size())
printf("size equal\n");
else
printf("size, %s is longer\n", a.size()>b.size()?a.c_str():b.c_str());
return 0;
}
ctrl+d,或者ctrl+z都不能退出迴圈,這是咋回事?
#include using namespace std;
int main()
cout << total << endl;
return 0;
}
以空格隔開
#include using namespace std;
int main()
cout << total << endl;
return 0;
}
想輸出字串的第乙個字元,但是字串為空,所以下標訪問溢位,非法。
#include using namespace std;
int main()
for(vector::size_type i=0; i::size_type i=0; i不合法。由於ivec是個空的vector,這是賦值給乙個不存在的元素,必定導致執行時錯誤。
改為ivec.push_back(42)。
一般有4中定義方式:
a 是先定義乙個空vector,然後動態新增
b 是直接初始化為10個42
c 是從乙個vector初始化
d 是先初始化有10個元素的vector,然後修改每個元素的值。
#include #include using namespace std;
int main()
for(vector::iterator i=b.begin(); i!=b.end(); i++)
for(string::iterator j=i->begin(); jend(); j++)
*j = toupper(*j);
int count(0);
for(vector::const_iterator iter=b.begin(); iter!=b.end(); iter++)
return 0;
}
#include #include using namespace std;
int main()
參見上題。
用了兩種迭代器:
iterator 如果要修改元素,用這個迭代器
const_iterator 如果僅是遍歷讀取元素,用這個迭代器。
const迭代器沒啥用,一旦定義之後,就不能指向其他元素。
const_iterator迭代器用於唯讀的遍歷元素,其指向的值不能變,但迭代器本身是可以++,--操作的。
兩個迭代器相加沒有意義,這樣會造成未定義的行為。
(a) 64位,值是32的位模式,也就是00100000,這是低8位,其餘補0
(b) 32位,值是1010101的位模式,1010101被當做乙個unsigned long,而不是二進位制數,該輸出是:00000000000011110110100110110101
(c) 從字串獲取的位模式,高低位順序相反。字串的高位是bitset的低位。
#include #include #include using namespace std;
int main()
bitset<32> b;
for(vector::const_iterator iter=a.begin(); iter!=a.end(); iter++)
cout << b << endl;
return 0;
}
c primer大綱(第四版)
第1章 快速入門 第一部分 基本語言 第2章 變數和基本型別 第3章 標準庫型別 第4章 陣列和指標 第5章 表示式 第6章 語句 第7章 函式 第8章 標準io庫 第二部分 容器和演算法 第9章 順序容器 第10章 關聯容器 第11章 泛型演算法 第三部分 類和資料抽象 第12章 類 第13章 複...
C Primer(第四版)答案之第五章
12 3 4 5 15 24 4 2 16 75 0 91 30 3 21 5 90 4 86,不依賴於機器 30 3 21 5 30 12 18,不依賴於機器 30 3 21 5 0,不依賴於機器 30 3 21 4 2,依賴於機器 include using namespace std int ...
c primer 第四版 學習札記 9 24
1 ex4 22 const char cp hello int cnt while cp while cp 解釋兩個迴圈的不同 我的理解是第乙個迴圈是判斷cp指標是否為空作為迴圈條件的,而 cp的操作並不會讓cp為空,所以迴圈會持續進行,直到出錯 也許會是個大錯誤,因為都不知道會訪問到記憶體的何處...