在C ++中,如果用户输入匹配输入的数组,如何返回数组的索引?

时间:2009-08-29 02:35:40

标签: c++ algorithm data-structures

我想知道如果用户输入的数组与输入数组匹配,我们如何得到数组的索引?

例如:

输入数组= [1,2,3,4]并且用户输入数组= [2,3]而不是我应该输出作为索引,其中两个数组匹配为1.

指导将受到高度赞赏。

1 个答案:

答案 0 :(得分:4)

使用STL search algorithm,它可以满足您的需要:“search()算法在[start1,end1]范围内查找元素[start2,end2]。”您需要提供指向两个数组的开头和结尾的指针;通过将其长度添加到其开始指针来获取数组的结束指针。

更好的是,使用STL向量来存储数据而不是数组,然后你可以调用vec.begin()和vec.end()来获得你想要的迭代器。

编辑:要在没有std :: search的情况下执行此操作,请按照我提供的链接上的示例进行操作,该链接显示了如何进行搜索。如果你正在做C风格,你将使用指针(如int *)而不是ForwardIterator。唯一棘手的一点是循环外的部分,它们找出应该设置的限制 - 这将变成一些指针算法。