練習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對象時,應該將循環控制變量聲明成引用類型嗎?爲什麼?
解答:
沒有必要,因爲多數循環控制變量在循環外是不使用的,或者只在該函數中使用,不存在拷貝操作等因素,所以沒有必要聲明成引用類型。