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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。