6.27:
#include <iostream>
using namespace std;
int func(initializer_list<int > a) {
int itSum = 0;
for(initializer_list<int >::iterator it = a.begin(); it != a.end(); it++){
itSum+=(*it);
}
int sizeSum = 0;
for (int i = 0; i != a.size(); i++) {
sizeSum += *(a.begin() +i);
}
cout << itSum << sizeSum<<endl;
return 0;
}
int main() {
func({1,2,3,4,5,6});
for(;;);
return 0;
}
6.28:
const int &
6.29:
可以加快运行速度,略
6.30 略
6.31 当引用为函数内局部变量时, 常量引用直接返回字符串也无效
6.32 合法,将ia中的值遍历并赋予当前i值
6.33
#include <iostream>
#include <vector>
using namespace std;
void printVec(vector<int >const & vec, vector<int >::iterator & it){
if(it!=vec.end()){
cout << *it;
printVec(vec, ++it);
}
return;
}
int main() {
vector<int > vec = {0,1,2,3,4,5,6,7,8,9};
printVec(vec,vec.begin());
for(;;);
return 0;
}
6.34 与 val > 1 相同结果
6.35 val--相当于先传入再减1,递归发生,但传入数值不变,导致无限循环调用,最后栈溢出,应使用--val