9.3.2节练习

练习9.23:在本节第一个程序(第309页)中,若c.size()为1,则val1,val2,val3和val4的值会是什么?

//在解引用一个迭代器或调用front或back之前检查是否有元素。
if(!c.empty()){
    //val1 和 val2是c中一个元素值的拷贝
    auto val = *c.begin(), val2 = c.front();
    //val3和val4是c中最后一个元素值的拷贝
    auto last = c.end();
    auto val3 = *(--last);//不能递减forward_list的迭代器
    auto val4 = c.back(); // forward_list不支持
}

答:相等。

练习9.24:编写程序,分别使用at、下标运算符、front和begin提取一个vector中的第一个元素。在一个空vector上测试你的程序。

vector<int> ss;

ss.at(0);
int a = ss.front;
int b = *ss.begin();

答,3个都会中断 但是报错内容不一样   at 抛出out_of_range的错误。

猜你喜欢

转载自blog.csdn.net/xnnswmzdszyd/article/details/89646503