《C++ Primer》第五版课后习题解答_第三章(4)(30-36)

来源:互联网 发布:nginx的日志文件在哪 编辑:程序博客网 时间:2024/06/05 19:18

系统环境: windows 10 1703

编译环境:Visual studio 2017


3.30

数组 ia 中共有 10 个元素,其下标分别为从 0 到 9。当 ix == array_size 即 ix == 10 时,数组的下标超出范围,出现索引错误。


3.31

#include <iostream>#include <string>#include <vector>using std::cout;using std::endl;using std::cin;using std::string;using std::vector;int main(){    int iarr[10];    for (size_t i = 0; i != 10; ++i)    {        iarr[i] = i;    }    for (auto a : iarr)    {        cout << a << endl;    }    return 0;}

3.32

#include <iostream>#include <string>#include <vector>using std::cout;using std::endl;using std::cin;using std::string;using std::vector;int main(){    //数组    int iarr[10];    int iarr2[10];    for (size_t i = 0; i != 10; ++i)    {        iarr[i] = i;    }    for (size_t i = 0; i != 10; ++i)    {        iarr2[i] = iarr[i];    }    //vector    vector<int> ivec(10);    for (vector<int>::size_type i = 0; i != 10; ++i)    {        ivec[i] = i;    }    vector<int> ivec2 = ivec;    return 0;}

3.33

如果不初始化 scores,因为其定义在 main 函数作用域内,故其元素将不被初始化,处于 undefined 状态。对其进行加法操作时,无法预料其结果。


3.34

功能是将 p1 指向 p2 指向的元素。若 p1 或 p2 其中之一非法,则该程序非法。


3.35

#include <iostream>using std::cout;using std::endl;int main(){    int iarr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};    int *p1 = iarr;    for (p1; p1 != iarr + 10; ++p1)    {        *p1 = 0;    }    for (auto a : iarr)    {        cout << a << endl;    }    return 0;}

3.36

#include <iostream>#include <iterator> // 为了使用数组的std::end()函数using std::cout;using std::endl;// 数组int main(){    int iarr1[] = {1, 2, 3, 4, 5, 6, 8};    int iarr2[] = {1, 2, 3, 4, 5, 6, 7};    int *b1 = iarr1;    int *b2 = iarr2;    int *e1 = std::end(iarr1);    int *e2 = std::end(iarr2);    if ((e1 - b1) == (e2 - b2))    {        for (b1; b1 != e1; ++b1)        {            if (*b1 != *b2)            {                cout << "Not Equal!!!" << endl;                cout << "iarr1 " << *b1 << endl;                cout << "iarr2 " << *b2 << endl;            }            ++b2;        }    }    else    {        cout << "Not Equal!!!" << endl;    }    return 0;}
#include <iostream>#include <vector>using std::cout;using std::endl;using std::vector;// vectorint main(){    vector<int> ivec1(10, 2);    vector<int> ivec2(11, 3);    if (ivec1 != ivec2)    {        cout << "Not Euqal!!!" << endl;    }    return 0;}


阅读全文
0 0
原创粉丝点击