在集合中搜索
Searching through a set
我在尝试通过一组字符串时遇到了一些困难。用于向量和数组的方法在此不起作用;我尝试了很多方法来遍历一个集合,包括调用迭代器,但编译器不买账。我在网上看了看,但似乎没有一个答案是正确的。
域.h
#ifndef DOMAIN_H_
#define DOMAIN_H_
#include <sstream>
#include <string>
#include <set>
using namespace std;
class Domain {
public:
Domain();
virtual ~Domain();
void add(string added_domain);
string toString();
private:
set<string> the_domain;
};
#endif /* DOMAIN_H_ */
Domain.cpp
include "Domain.h"
include <string>
include <set>
Domain::Domain() {
// TODO Auto-generated constructor stub
}
Domain::~Domain() {
// TODO Auto-generated destructor stub
}
void Domain::add(string added_domain)
{
the_domain.insert(added_domain);
}
string Domain::toString()
{
// insert here
}
希望我不用再问这个了。谢谢你的帮助!
bool Domain::searchForString(const string &str)
{
return(the_domain.find(str) != the_domain.end());
}
您可以使用迭代器:
std::set<std::string> strs;
for( std::set<std::string>::const_iterator it = strs.begin(); it != strs.end; ++i ) {
std::cout << *it << std::endl;
}
你可以使用boost foreach:
std::set<std::string> strs;
BOOST_FOREACH( const std::string &str, strs ) {
std::cout << str << std::endl;
}
您可以使用std::foreach
struct out { void operator()( const std::string &str ) { std::cout << str << std::endl; }
std::set<std::string> strs;
std::foreach( strs.begin(), strs.end(), out() );
你可以使用c++11测距循环:
std::set<std::string> strs;
for( const auto &str: strs ) {
std::cout << str << std::endl;
}
您可以使用其他std容器,而不仅仅是它们具有相同的代码,而不是std::set。
#include <sstream>
string Domain::toString() const {
std::ostringstream ss;
for (const auto& s : strs) {
ss << s << std::endl;
}
return ss.str();
}
相关文章:
- 处理多个异常集合的C++方法
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 有根的二进制搜索树.保留与其父级的链接
- 如何将ampl中的集合表示为c++中的向量
- 检查值是否在集合p1和p2中,但不在p3中
- 带过滤器的现代迭代c++集合
- 在C++中搜索嵌套多映射值
- 如何将结构插入到集合中并打印集合的成员
- 基于函数而不是集合的二分搜索或迭代器?
- C++到Java:高效地搜索集合
- 在 c++ 中搜索集合的最有效方法是什么
- 如何在C++派生对象的集合中进行搜索和赋值
- 如何在 C++ 中搜索集合
- 如何搜索字符串是否是存储在集合中的字符串的前缀
- 在C++中定义和搜索相关订单上的集合
- 在具有非关键字类型的集合中进行有效搜索
- 搜索集合中某项的一部分
- 在集合中搜索
- 基于数据集合执行二叉树搜索
- 使用 STL 映射/集合/多重集/多重映射,如何查找大于或等于搜索键的第一个值