unordered_set::end()函數是C++ STL中的內置函數,該函數返回指向past-the-end元素的迭代器。此迭代器並不直接指向元素,而是指向最後一個元素之後的位置。
用法
umap_name.end() or, umap_name.end(int i)
參數:此函數采用單個整數參數這是可選的。
返回值:
- 如果參數如果未傳遞,則函數返回指向past-the-end元素的迭代器。實際上,它不指向集合中的任何元素,但指向容器的最後一個元素之後的位置。
- 如果參數傳遞後,函數將返回一個迭代器,該迭代器指向i-th存儲桶中的past-the-end元素。與前麵的情況一樣,它不指向集合中的任何元素,而是指向i-th存儲桶的最後一個元素之後的位置。
因此,不能取消引用由unordered_set::end()返回的迭代器。
以下示例程序旨在說明unordered_set::end()函數:
示例1:
// CPP program to illustrate the unordered_set::end()
// function
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> sampleSet =
{ 5, 10, 15, 4, 2, 7, 8, 6 };
// Continue the loop until it points to the
// past-the-end position returned by sampleSet.end()
for (auto it = sampleSet.begin(); it != sampleSet.end();
it++)
{
cout << *it << " ";
}
return 0;
}
輸出:
6 8 7 2 4 15 10 5
示例2::
// CPP program to illustrate the
// unordered_set::end() function
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> sampleSet =
{ 5, 10, 15, 4, 2, 7, 8, 6 };
// displaying all the buckets of the set.
// Continue the loop until it points to the
// past-the-end position returned by sampleset.end(i)
for (unsigned i = 0; i < sampleSet.bucket_count(); ++i)
{
cout << "Bucket " << i << " Contains: ";
for (auto it1 = sampleSet.begin(i);
it1 != sampleSet.end(i); ++it1)
cout << " " << *it1;
cout << endl;
}
return 0;
}
輸出:
Bucket 0 Contains: Bucket 1 Contains: Bucket 2 Contains: 2 Bucket 3 Contains: Bucket 4 Contains: 4 15 Bucket 5 Contains: 5 Bucket 6 Contains: 6 Bucket 7 Contains: 7 Bucket 8 Contains: 8 Bucket 9 Contains: Bucket 10 Contains: 10
注:本文由純淨天空篩選整理自tufan_gupta2000大神的英文原創作品 unordered_set end() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。