• C++ Primer 学习笔记 Chapter 9


    9.1 顺序容器 Sequential Containers

      vector:  快速随机访问,

      list:    快速插入/删除 ,

      deque:  双端队列

    9.2 迭代器和迭代器的范围

      迭代器操作:

      *iter:              返回iter指向元素的引用。

      iter->mem:     对iter 进行解引用, 等效于(*iter).mem。

      ++iter和iter++: 给iter加1, 使其指向下一个元素。 

      --iter和iter--:  指向下一个元素。 

      iter1 == iter2 和 iter1 != iter2  :  两个迭代器是同一容器的同一个元素,或都指向容器超出末端的下一位置时相等。

    计算vector对象的中心位置:

      vector<int>::iterator iter = vec.begin() + vec.size() / 2;

    list 容器支持迭代器的算术操作

    Exercises Section 9.2

      Exercise 9.7 :以下代码编译出错, list的 iterator 不支持 关系运算符操作

    list<int> lst1;
    list<int>::iterator iter1 = lst1.begin(),
    iter2 = lst1.end();
    while (iter1 < iter2) {
      break;
    }

      Exercise 9.8:当iterator的字符串为空时,执行if内语句

      Exercise 9.8:Write a loop to write the elements of a list reverse order.

    #include <iostream>
    #include <list>
    #include <vector>
    #include <sstream>

    using namespace std;

    void exercize_9_9();

    int main() {
      exercize_9_9();
      return 0;
    }

    void exercize_9_9() {
      list<string> list1 ;
      for (short i = 0; i < 10; ++i) {
        stringstream ss;
        ss << i;
        list1.push_back("string " + ss.str());
      }

      list<string>::iterator it = list1.end();
      do
      {
        --it;
        string s = *it;
        cout << s.c_str() << endl;
      }
      while (it != list1.begin());
    }

       Exercise 9.10: Which, if any , of the following iterator uses are in error?

    const vector< int > ivec(10);
    vector< string > svec(10);
    list< int > ilist(10);
    (a) vector<int>::iterator it = ivec.begin(); //错误:ivec中的迭代器是const,改成vector<int>::const_iterator
    (b) list<int>::iterator it = ilist.begin()+2; //错误:list 中的迭代器不能进行算术加减运算
    (c) vector
    <string>::iterator it = &svec[0]; //错误:svec[0],是字符型string。
    (d)
    for (vector<string>::iterator it = svec.begin(); it != 0; ++it) //错误, it != 0改为 it != svec.end()
      //....
  • 相关阅读:
    51nod 1174 区间最大值(RMQ and 线段树)
    Round #447(Div 2)
    51nod 2006 飞行员匹配
    75.Java异常处理机制throws
    74.Java异常处理机制
    emmm
    数据库关系代数
    汇编实验二 2进制转16进制
    汇编实验一 显示字符串
    JustOj 1386: 众数的数量
  • 原文地址:https://www.cnblogs.com/laohehexiaohe/p/4519868.html
Copyright © 2020-2023  润新知