C Primer第五版 9 2 5節練習

2021-07-05 08:03:17 字數 2387 閱讀 6882

練習9.11:對6種建立和初始化vector物件的方法,每一種都給出乙個例項,解釋每個vector包含什麼值。

答: 見 練習9.11.cpp

練習9.12:對於接受乙個容器建立其拷貝的建構函式,和接受兩個迭代器建立拷貝的建構函式,解釋他們的不同。

答:為了建立乙個容器為另乙個容器的拷貝,兩個容器的型別及其元素的型別必須匹配。

當用迭代器引數來拷貝乙個範圍時就不要求容器型別是相同的了,而且,新容器和原容器中的元素型別也可以不同,只要能將拷貝的元素轉換。(參考p300 9.2.4節)

練習9.13:如何從乙個list初始化乙個vector?從乙個vector又該如何建立?編寫**驗證你的答案。

答:使用第二種初始化方式

見 練習9.13.cpp

練習9.11

/*

*練習9.11

*2015/7/27

*問題描述:對6種建立和初始化vector物件的方法,每一種都給出乙個例項,解釋每個vector包含什麼值。

*功能:可變引數的列表

* */

#include

#include

#include

using

namespace

std;

int main()

; vector

vec5=;

auto iter1 = vec5.begin();

auto iter2 = vec5.end();

vector

vec6(iter1,iter2);

for(auto i = 0; i!= vec1.size(); ++i)

cout

<< vec1[0] << endl;

for(auto i = 0; i != vec2.size(); ++i)

cout

<< vec2[0] << endl;

for(auto i = 0; i != vec3.size(); ++i)

cout

<< vec3[0] << " ";

cout

<< endl;

for(auto i = 0; i != vec4.size(); ++i)

cout

<< vec4[i] << " ";

cout

<< endl;

for(auto i = 0; i != vec5.size(); ++i)

cout

<< vec5[i] << " ";

cout

<< endl;

for(auto i = 0; i != vec6.size(); ++i)

cout

<< vec6[i] << " ";

cout

<< endl;

return

0;}

練習9.13

/*

*練習9.13

*2015/7/27

*問題描述:練習9.13:如何從乙個list初始化乙個vector?從乙個vector又該如何建立?編寫**驗證你的答案。

*功能:可變引數的列表

* */

#include

#include

#include

using

namespace

std;

int main()

; auto iter1 = li.begin();

auto iter2 = li.end();

vector

vec2 = ;

while(iter1 != iter2)//list不支援元素的隨機訪問

cout

<< endl;

vector

vec1(li.begin(),li.end());

//注意,這裡不要寫iter1,iter2,否則後果很嚴重

for(auto i = 0; i != vec1.size(); ++i)

cout

<< vec1[i] << " ";

cout

<< endl;

vector

vec3(vec2.begin(), vec2.end());

for(auto i = 0; i != vec3.size(); ++i)

cout

<< vec3[i] << " ";

cout

<< endl;

return

0;}

C Primer第五版 2 4 3節練習

練習2.30 對於下面的這些語句,請說明物件被宣告成了頂層const還是底層const?const int v2 0 v2的值不能被改變,所以這是乙個頂層const int v1 v2 int p1 v1,r1 v1 const int p2 v2 p2存放的是v2的位址,不能間接改變v2的值,但p...

C Primer第五版 2 5 3節練習

練習 2.36 關於下面的 請指出乙個變數的型別以及程式結束時它們各自的值。include int main 練習 2.37 賦值是會產生引用的一類典型表示式,引用的型別就是左值的型別。也就是說,如果i是int,則表示式 i x的型別是int 根據這一特點,請指出下面的 中每乙個變數的型別和值。in...

C Primer第五版 3 2 2節練習

練習3.2 編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。練習3.3 請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。練習 3.4 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...