在STL集合中,静态与成员查找方法是指使用集合的静态成员函数或成员函数来查找元素。在C++中,STL(标准模板库)提供了一系列集合容器,如set
、map
、multiset
和multimap
等。这些容器提供了一些成员函数和静态函数来查找元素。
以下是一些常用的查找方法:
find()
:查找指定元素的迭代器。如果找到,则返回指向该元素的迭代器;如果未找到,则返回指向集合中的尾部元素的迭代器。count()
:返回指定元素在集合中出现的次数。对于集合(set)和映射(map),每个元素只能出现一次,因此返回值为0或1。lower_bound()
:返回指向集合中第一个大于等于指定元素的元素的迭代器。upper_bound()
:返回指向集合中第一个大于指定元素的元素的迭代器。例如,在set
容器中,可以使用find()
方法来查找指定元素:
#include<iostream>
#include <set>
int main() {
std::set<int> myset = {1, 2, 3, 4, 5};
std::set<int>::iterator it = myset.find(3);
if (it != myset.end()) {
std::cout << "Element found: " << *it<< std::endl;
} else {
std::cout << "Element not found"<< std::endl;
}
return 0;
}
在map
容器中,可以使用find()
方法来查找指定键的元素:
#include<iostream>
#include <map>
int main() {
std::map<int, std::string> mymap = {{1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}};
std::map<int, std::string>::iterator it = mymap.find(3);
if (it != mymap.end()) {
std::cout << "Element found: " << it->first << " -> " << it->second<< std::endl;
} else {
std::cout << "Element not found"<< std::endl;
}
return 0;
}
需要注意的是,在使用STL集合时,应该根据具体的需求选择合适的查找方法。例如,如果需要查找的元素可能不存在于集合中,则应该使用find()
方法;如果需要查找的元素一定存在于集合中,则可以使用lower_bound()
或upper_bound()
方法。
领取专属 10元无门槛券
手把手带您无忧上云