91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++迭代器的基本操作有哪些

c++
小樊
82
2024-09-11 18:28:35
欄目: 編程語言

C++中的迭代器(Iterator)是一種用于遍歷容器(如數組、向量、列表等)的對象。迭代器提供了對容器元素的訪問,并支持某些基本操作。以下是C++迭代器的基本操作:

  1. 解引用(Dereference):使用*運算符可以獲取迭代器當前指向的元素。例如:

    std::vector<int> vec = {1, 2, 3};
    std::vector<int>::iterator it = vec.begin();
    int value = *it; // value 現在是 1
    
  2. 成員訪問(Member Access):對于復雜類型的容器(如結構體或類),可以使用->運算符訪問其成員。例如:

    struct Person {
        std::string name;
    };
    
    std::vector<Person> people = {{"Alice"}, {"Bob"}};
    std::vector<Person>::iterator it = people.begin();
    std::string name = it->name; // name 現在是 "Alice"
    
  3. 自增(Increment):使用++運算符可以將迭代器移動到下一個元素。例如:

    std::vector<int> vec = {1, 2, 3};
    std::vector<int>::iterator it = vec.begin();
    ++it; // it 現在指向第二個元素(值為 2)
    
  4. 自減(Decrement):對于支持雙向迭代器(Bidirectional Iterator)的容器(如std::setstd::multisetstd::mapstd::multimap等),可以使用--運算符將迭代器移動到上一個元素。例如:

    std::set<int> s = {1, 2, 3};
    std::set<int>::iterator it = s.find(2);
    --it; // it 現在指向第一個元素(值為 1)
    
  5. 比較(Comparison):可以使用==!=運算符比較兩個迭代器是否相等或不相等。例如:

    std::vector<int> vec = {1, 2, 3};
    std::vector<int>::iterator it1 = vec.begin();
    std::vector<int>::iterator it2 = vec.begin() + 1;
    bool isEqual = (it1 == it2); // isEqual 是 false
    bool isNotEqual = (it1 != it2); // isNotEqual 是 true
    
  6. 賦值(Assignment):可以使用=運算符將一個迭代器賦值給另一個迭代器。例如:

    std::vector<int> vec = {1, 2, 3};
    std::vector<int>::iterator it1 = vec.begin();
    std::vector<int>::iterator it2;
    it2 = it1; // it2 現在指向第一個元素(值為 1)
    
  7. 距離(Distance):對于支持隨機訪問迭代器(Random Access Iterator)的容器(如std::vectorstd::arraystd::deque等),可以使用-運算符計算兩個迭代器之間的距離。例如:

    std::vector<int> vec = {1, 2, 3};
    std::vector<int>::iterator it1 = vec.begin();
    std::vector<int>::iterator it2 = vec.begin() + 1;
    int distance = it2 - it1; // distance 是 1
    
  8. 數組索引(Array Indexing):對于支持隨機訪問迭代器的容器,還可以使用[]運算符訪問迭代器指向的元素。例如:

    std::vector<int> vec = {1, 2, 3};
    std::vector<int>::iterator it = vec.begin();
    int value = it[1]; // value 現在是 2
    

請注意,并非所有容器都支持所有這些操作。例如,std::forward_list只支持單向迭代,因此不支持遞減、隨機訪問和比較操作。在使用迭代器時,請確保了解所使用的容器類型及其支持的操作。

0
阳信县| 濮阳市| 淮北市| 图们市| 拉孜县| 玛多县| 田林县| 江山市| 密云县| 荃湾区| 沭阳县| 富蕴县| 宁都县| 镇江市| 岳普湖县| 开鲁县| 尼勒克县| 齐河县| 阿克陶县| 健康| 吉林市| 安图县| 海原县| 临夏县| 若羌县| 嵩明县| 台前县| 江山市| 浦江县| 延边| 鄂州市| 南漳县| 七台河市| 兴隆县| 普格县| 黄浦区| 都兰县| 林甸县| 隆子县| 平山县| 西丰县|