全面了解遍歷vector

一、遍歷vector容器

vector是C++語言中的一個容器,用於存儲一系列相同類型的元素。遍歷vector是使用vector的一個基本操作。遍歷vector最常見的方式是使用迭代器,可以通過begin()和end()函數獲取vector的起始位置和結束位置。下面是一個遍歷vector容器的代碼示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }

    return 0;
}

以上代碼中,我們使用了auto關鍵字來定義迭代器,用於遍歷vector容器。通過循環,我們輸出了每個元素的值,輸出結果為:1 2 3 4 5。

二、便利vector

除了使用迭代器來遍歷vector之外,還可以使用for-each語句來遍歷vector。for-each語句可以簡化代碼,並且更易讀。下面是一個使用for-each語句遍歷vector的代碼示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代碼中,我們使用for-each語句來便利vector容器,輸出結果與前一個示例相同。

三、遍歷vector中的元素

遍歷vector中的元素是在遍歷vector的基礎上,進一步操作vector中的每個元素。對於vector中的元素,在遍歷的過程中可以使用下標或迭代器來進行操作。下面是一個使用下標遍歷vector並修改元素值的代碼示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (unsigned int i = 0; i < v.size(); i++) {
        v[i] *= 2;
    }

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代碼中,我們使用下標來遍歷vector容器,並將每個元素的值乘以2。通過第二個for-each循環,我們輸出了修改過數值的vector容器,輸出結果為:2 4 6 8 10。

四、遍歷vector刪除符合條件的元素

在遍歷vector容器過程中,如果需要刪除符合條件的元素,需要注意迭代器的失效問題。刪除元素的時候應該使用erase()函數,同時使用正確的迭代器指向,來防止刪除後迭代器失效。下面是一個遍歷vector並刪除其中的偶數元素的代碼示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (auto it = v.begin(); it != v.end(); ) {
        if (*it % 2 == 0) {
            it = v.erase(it);
        } else {
            it++;
        }
    }

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代碼中,我們使用迭代器遍歷vector容器,並刪除其中的偶數元素。使用erase()函數刪除元素後,迭代器應該指向erase()函數返回的新迭代器,以防止迭代器失效。輸出結果為:1 3 5。

五、vector遍歷

遍歷vector除了使用for循環和for-each語句之外,還可以使用std::for_each()算法進行遍歷。與for循環和for-each語句不同,for_each()算法需要傳入一個函數對象用於處理每個元素。下面是一個使用for_each()算法遍歷vector並進行求和的代碼示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};
    int sum = 0;

    std::for_each(v.begin(), v.end(), [&](int i) {
        sum += i;
    });

    cout << "Sum: " << sum << endl;

    return 0;
}

以上代碼中,我們使用for_each()算法遍歷vector容器,並使用lambda表達式進行求和操作。輸出結果為:Sum: 15。

六、vector遍歷刪除

除了在遍歷容器中刪除元素之外,還可以使用std::remove_if()算法進行刪除操作。std::remove_if()算法可以刪除符合特定條件的元素,並將剩餘的元素移到vector的前面。下面是一個使用std::remove_if()算法遍歷vector並刪除其中偶數元素的代碼示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};
    v.erase(std::remove_if(v.begin(), v.end(), [](int i) {
        return i % 2 == 0;
    }), v.end());

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代碼中,我們使用std::remove_if()算法遍歷vector容器,刪除其中的偶數元素。最後我們使用遍歷容器的方式輸出vector容器的內容,輸出結果為:1 3 5。

七、vector大小

在遍歷vector容器的過程中,需要知道vector容器中的元素數量,可以使用size()函數獲取vector容器中元素的個數。下面是一個輸出vector容器大小的代碼示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};
    cout << "Vector size: " << v.size() << endl;

    return 0;
}

以上代碼中,我們輸出了vector容器中元素的個數,輸出結果為:Vector size: 5。

八、遍歷vector里的對象

在實際編程中,vector容器並不僅僅只存儲基本數據類型,還可能存儲結構體、類等自定義對象。遍歷vector中的對象與遍歷基本數據類型並沒有太大區別,具體使用方式與前面的示例基本相同。下面是一個存儲自定義結構體的vector容器,並遍歷輸出每個元素的成員變量值的代碼示例:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

struct Person {
    string name;
    int age;
};

int main() {
    vector<Person> v {
        {"Alice", 20},
        {"Bob", 25},
        {"Charlie", 30},
        {"David", 35},
        {"Ella", 40}
    };

    for (auto it = v.begin(); it != v.end(); it++) {
        cout << "Name: " << it->name << ", Age: " << it->age << endl;
    }

    return 0;
}

以上代碼中,我們定義了一個Person結構體,包含name和age兩個成員變量。我們將多個Person對象存儲在vector容器中,並使用迭代器遍歷vector容器,輸出每個元素的成員變量值。

原創文章,作者:ZBTZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/136991.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZBTZ的頭像ZBTZ
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

  • Python應用程序的全面指南

    Python是一種功能強大而簡單易學的編程語言,適用於多種應用場景。本篇文章將從多個方面介紹Python如何應用於開發應用程序。 一、Web應用程序 目前,基於Python的Web…

    編程 2025-04-29
  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python zscore函數全面解析

    本文將介紹什麼是zscore函數,它在數據分析中的作用以及如何使用Python實現zscore函數,為讀者提供全面的指導。 一、zscore函數的概念 zscore函數是一種用於標…

    編程 2025-04-29
  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • 全面解讀數據屬性r/w

    數據屬性r/w是指數據屬性的可讀/可寫性,它在程序設計中扮演着非常重要的角色。下面我們從多個方面對數據屬性r/w進行詳細的闡述。 一、r/w的概念 數據屬性r/w即指數據屬性的可讀…

    編程 2025-04-29
  • Python計算機程序代碼全面介紹

    本文將從多個方面對Python計算機程序代碼進行詳細介紹,包括基礎語法、數據類型、控制語句、函數、模塊及面向對象編程等。 一、基礎語法 Python是一種解釋型、面向對象、動態數據…

    編程 2025-04-29
  • Matlab二值圖像全面解析

    本文將全面介紹Matlab二值圖像的相關知識,包括二值圖像的基本原理、如何對二值圖像進行處理、如何從二值圖像中提取信息等等。通過本文的學習,你將能夠掌握Matlab二值圖像的基本操…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 瘋狂Python講義的全面掌握與實踐

    本文將從多個方面對瘋狂Python講義進行詳細的闡述,幫助讀者全面了解Python編程,掌握瘋狂Python講義的實現方法。 一、Python基礎語法 Python基礎語法是學習P…

    編程 2025-04-28
  • 全面解析Python中的Variable

    Variable是Python中常見的一個概念,是我們在編程中經常用到的一個變量類型。Python是一門強類型語言,即每個變量都有一個對應的類型,不能無限制地進行類型間轉換。在本篇…

    編程 2025-04-28

發表回復

登錄後才能評論