[2018年4月19号]C++ primer 课后练习 第六章 函数

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值