• C++11中vector的几种遍历方法


    假设有这样的一个vector:

    vector<int> line={1,2,3,4,5,6,7,8,9};

    需要输出vector里的每个元素,主函数如下:

    void showvec(const vector<int>& line)
    {
    }
    
    int main(int argc, char** argv) {
      vector<int> line = {1, 2, 3, 4, 5, 6, 7, 8, 9};
      showvec(line);
      return 0;
    }
    

    方法一:for循环迭代器输出

    void showvec(const vector<int>& line) {
      for (vector<int>::const_iterator iter = line.cbegin();iter != line.cend(); iter++) {
        cout << (*iter) << endl;
      }
    }

    或者使用c++新增的语义auto

    void showvec(const vector<int>& line) {
      for (auto iter = line.cbegin(); iter != line.cend(); iter++) {
        cout << (*iter) << endl;
      }
    }

    方法二:for_each加函数

    template <typename T>
    void printer(const T& line) {
      cout << line;
      cout << endl;
    }
    
    void showvec(const vector<int>& line) {
      for_each(line.cbegin(), line.cend(), printer<int>);
    }

    方法三:for区间遍历

    for (auto lin : line) {
        cout << lin;
      }
    

      

  • 相关阅读:
    杭电 1013 Digital Roots
    杭电 1040 As Easy As A+B 【排序】
    杭电 2092 整数解
    bzoj3223
    bzoj3224
    LA3905
    bzoj3601
    bzoj1002
    bzoj3105
    bzoj3332
  • 原文地址:https://www.cnblogs.com/darklights/p/11484639.html
Copyright © 2020-2023  润新知