您的位置:

c++ vector遍历详解

一、vector遍历

vector是c++中常用的容器之一,可以方便快捷的进行数据存储和管理。在进行vector的遍历时,最基础的方法是通过循环进行遍历。以下是一个示例代码:

    vector vec = {1, 2, 3, 4, 5};
    for(int i = 0; i < vec.size(); i++){
        cout << vec[i] << " ";
    }

  

此代码中,循环遍历了vector中的每一个元素,输出其值。这种方法最为常见,也是最为基础的vector遍历方式。

二、c vector变量取值运行报错

在进行c++ vector遍历时,经常会遇到一种问题,即“c vector变量取值运行报错”。这是因为,c vector与c++ vector有所不同,在进行取值时需要使用c语言的方式进行。代码示例如下:

    vector vec = {1, 2, 3, 4, 5};
    for(int i = 0; i < vec.size(); i++){
        int val = vec.at(i);
        cout << val << " ";
    }

  

在此代码中,使用了c语言的方式进行vector的取值,避免了出现报错的情况。

三、vector遍历删除

在进行vector遍历时,有时需要进行删除操作。使用erase()函数可以实现删除,以下是一段代码示例:

    vector vec = {1, 2, 3, 4, 5};
    for(auto it = vec.begin(); it != vec.end();){
        if(*it == 3){
            it = vec.erase(it);
        }else{
            it++;
        }
    }
    for(auto val : vec){
        cout << val << " ";
    }

  

此代码中,使用了迭代器进行遍历,当检测到值为3时,则使用erase()函数进行删除操作,最后再次遍历vector进行输出。

四、c++遍历vector

c++11中提供了一种更为简便的vector遍历方式,即使用auto关键字进行遍历。如下所示:

    vector vec = {1, 2, 3, 4, 5};
    for(auto val : vec){
        cout << val << " ";
    }

  

此代码中,使用auto关键字声明一个val变量,遍历vector中的每一个元素。

五、遍历vector

当需要同时遍历两个vector时,可以使用以下方式进行操作:

    vector vec1 = {1, 2, 3, 4, 5};
    vector
    vec2 = {6, 7, 8, 9, 10};
    for(int i = 0; i < vec1.size(); i++){
        cout << vec1[i] << " " << vec2[i] << endl;
    }

   
  

此代码中,使用两个循环遍历vec1和vec2,输出它们对应位置的元素。

六、auto遍历vector

除了上述方式外,当需要同时遍历多个vector时,还可以使用auto进行简单的代码实现。以下是一个示例:

    vector
   > vecs = {{1, 2}, {3, 4}, {5, 6}};
    for(auto &vec : vecs){
        for(auto val : vec){
            cout << val << " ";
        }
        cout << endl;
    }

   
  

此代码中,使用auto声明一个vec,对vecs进行遍历,再在其中使用auto进行遍历元素。

七、二维vector遍历

在使用二维vector进行遍历时,可以使用以下方式进行操作:

    vector
   > vecs = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    for(int i = 0; i < vecs.size(); i++){
        for(int j = 0; j < vecs[i].size(); j++){
            cout << vecs[i][j] << " ";
        }
        cout << endl;
    }

   
  

此代码中,使用两个循环进行遍历,第一个循环遍历vec,第二个循环遍历vec[i]中的元素。

八、vector和list容易遍历

在使用vector和list进行遍历时,常常使用以下方式:

    vector vec = {1, 2, 3, 4, 5};
    list
    li(vec.begin(), vec.end());
    for(auto it = li.begin(); it != li.end(); it++){
        cout << *it << " ";
    }

   
  

此代码中,首先将vector转化为list,再使用list的begin()和end()函数进行遍历,输出每个元素的值。

九、vector循环遍历

当需要进行循环遍历时,可以使用下面的代码进行操作:

    vector vec = {1, 2, 3, 4, 5};
    int index = 0;
    while(true){
        cout << vec[index] << " ";
        index = (index + 1) % vec.size();
    }

  

此代码中,使用一个循环不断地输出vector中的元素,当index超过vector的长度时,回到初始位置进行循环。

十、vector二维数组遍历

在使用vector作为二维数组进行遍历时,可以使用以下方式进行操作:

    vector
   > vecs = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
    for(int i = 0; i < vecs.size(); i++){
        for(int j = 0; j < vecs[i].size(); j++){
            cout << vecs[i][j] << " ";
        }
        cout << endl;
    }

   
  

此代码中,使用两个循环遍历vector中的元素,输出其值。