怎么做电影网站,亚马逊如何做折扣网站的营销,网页游戏网站源码,Wordpress 视频采集插件还是先复习 or 预习一下set。
先给set一个名字#xff1a;
set元素类型qwq;插入元素#xff1a;
qwq.insert(元素);查找元素#xff1a;
qwq.find(元素);如果元素没有找到#xff0c;返回qwq.end()#xff0c;是一个空的位置迭代器。 注#xff1a; 1.迭代器…还是先复习 or 预习一下set。
先给set一个名字
set元素类型qwq;插入元素
qwq.insert(元素);查找元素
qwq.find(元素);如果元素没有找到返回qwq.end()是一个空的位置迭代器。 注 1.迭代器可以看作是一个复合类型的指针set的存储是动态线性的。 2.集合的最后一个元素是空的qwq.end()指向最后一个元素。 3.如果找到元素就会返回指向这个元素的指针没有的话就返回qwq.end()。 于是得出 如何判断元素p是否存在于qwq中
if (qwq.find(p)!qwq.end())
{//如果返回了qwq的end()就代表是不存在。//所以不是end()就代表在qwq内//然后如果没有元素就返回end()避免了一些不必要的尴尬coutp s in qwq.endl;
}
else coutNot found p in qwq.endl;以上是这个题的STLset内置成员函数方面。 然后讨论一下这个题的操作。
这个题很明显卡的就是Windows Vista\XP\2003\7\8.1\10 Linux系统13号是\n,即换行...... 因为题目测试点下载以后win会发现多了一个13号字符 (空格)...... 然后我们读入数据就必须特判吃掉或者加上char(13)。 然后每一个地方还不一定不含有空格所以必须getline。 举个例子Boston Centercin读到Boston就停下了。 我们也可以读入一个 就继续cin然而getline更方便qwq 边读入要匹配的字符串然后.find(input)判断是否存在存在即ans。 说的还是挺明白的吧...... 星,上代码
#include iostream
#include cstdio
#include string
#include set
//STL の set 库using namespace std;int main()
{string input;//你要的字符串setstringqwq;//你要的集合int n,m,ans0;scanf(%d%d,n,m);getline(cin,input);//把数字后面乱七八糟的东西读干净for (register int i1;in;i){getline(cin,input);//读入字符串if (input[input.size()-1]!(char)13)//最后一个是否是 inputinputchar(13);qwq.insert(input);//压入集合qwq}for (register int i1;im;i){getline(cin,input);if (input[input.size()-1]!(char)13)//最后一个是否是 inputinputchar(13);if (qwq.find(input)!qwq.end())ans;}coutans;return 0;
}瞎举报前提交记录自己查询Jelly_Goat。 感谢阅读更多精彩移步。
另附后注
做这样的字符串匹配问题trie字典树和KMP算法基本都是正解。 但是这样的数据结构是用空间换时间当字符串过长的时候不宜使用静态Trie字典树。 当数据范围较小的时候我们可以借助其他数据结构用时间换空间。