第六章 6.2.5節練習 & 6.2.6節練習

練習6.25

編寫一個main函數,令其接受兩個實參。把實參的內容鏈接成一個string對象並輸出出來。

解答:

<pre name="code" class="cpp">#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[]){
	string option;
	for (size_t i = 1; i != argc; ++i){
		option += argv[i];
		option += " ";
	}
	cout << option << endl;
}



練習6.26

編寫一個程序,使其接受本節所示的選項;輸出傳遞給main函數的實參的內容。

解答:

用上面的程序足矣。


練習6.27

編寫一個函數,它的參數是initializer_list<int>類型的對象,函數的功能是計算列表中所有元素的和。

解答:

#include <iostream>
#include <string>
#include <initializer_list>

using namespace std;

void Sum(const initializer_list<int> &li){
	int sum = 0;
	for (auto i : li){
		sum += i;
	}
	cout << sum << endl;
}

int main(){
	initializer_list<int> list{ 1, 2, 3, 4 };
	Sum(list);
}

練習6.28

在error_msg函數的第二個版本中包含ErrCode類型的參數,其中循環內的elem是什麼類型?

解答:

const string& 類型。


練習6.29

在範圍for循環中使用initializer_list對象時,應該將循環控制變量聲明成引用類型嗎?爲什麼?

解答:

沒有必要,因爲多數循環控制變量在循環外是不使用的,或者只在該函數中使用,不存在拷貝操作等因素,所以沒有必要聲明成引用類型。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章