C++ unordered_set::end() 函式



C++ std::unordered_set::end() 函式用於返回一個指向無序集合容器中最後一個元素之後的迭代器。返回的迭代器不指向任何元素,而是指向無序集合容器中最後一個元素之後的那個位置。

迭代器是一個物件(類似於指標),它遍歷元素並提供對每個單獨元素的訪問。

unordered_set::end() 函式類似於 unordered_set::cend() 函式,其中 end() 函式僅返回一個迭代器,而 cend() 函式返回一個常量迭代器。

語法

以下是 std::unordered_set::end() 函式的語法。

iterator end() noexcept;
const_iterator end() const noexcept;
or
local_iterator end (size_type n);
const_local_iterator end (size_type n) const;

引數

  • n - 它表示桶號,必須小於 bucket_count。

返回值

此函式返回一個迭代器,該迭代器指向無序集合容器中最後一個元素之後的那個位置。

示例 1

在以下示例中,我們將使用 end() 函式內部的迴圈並在範圍內顯示容器的元素。

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myUset =
      {"100","200","300","400","500"};
      
   std::cout << "myUset contains:";
   for ( auto it = myUset.begin(); it != myUset.end(); ++it )
      std::cout << " " << *it;
   std::cout << std::endl;
   
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

myUset contains: 500 400 300 200 100

示例 2

考慮以下示例,我們將使用接受 i 作為引數並返回每個桶元素的 end() 函式。

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myUset = {"100", "200", "300", "400", "500"};
      
   std::cout << "myUset's buckets contain:\n";
   for ( unsigned i = 0; i < myUset.bucket_count(); ++i) {
      std::cout << "bucket #" << i << " contains:";
      for ( auto local_it = myUset.begin(i); local_it!= myUset.end(i); ++local_it )
         std::cout << " " << *local_it;
      std::cout << std::endl;
   }
   return 0;
}

輸出

以下是以上程式碼的輸出:

myUset's buckets contain:
bucket #0 contains:
bucket #1 contains: 400
bucket #2 contains: 500
bucket #3 contains:
bucket #4 contains: 100
bucket #5 contains:
bucket #6 contains:
bucket #7 contains:
bucket #8 contains:
bucket #9 contains:
bucket #10 contains: 300
bucket #11 contains: 200
bucket #12 contains:

示例 3

讓我們看看以下示例,我們將使用 end() 函式並透過迭代無序集合來獲取容器的元素。

#include <iostream>
#include <unordered_set>  
#include <string> 
using namespace std;
 
int main() {
   unordered_set<int> myset = { 10,20,30,40,50 };  
      cout<<"Elements of myUset are: "<<endl;  
   unordered_set<int>::const_iterator it; // declare an iterator 
   it = myset.begin();
   while (it != myset.end()) {  
      cout << *it << "\n"; 
      ++it; // iterate to the next element  
   }  
   cout << endl;  
   return 0;
} 

輸出

以上程式碼的輸出如下:

Elements of myUset are: 
50
40
30
20
10
廣告

© . All rights reserved.