2009-08-29 60 views
2

我想知道如果用户输入的数组与输入数组匹配,我们如何获得数组的索引?在C++中如何返回数组的索引如果用户输入匹配输入的数组?

例如:

输入数组= [1,2,3,4]和用户输入阵列= [2,3],比我应该得到如其中两个阵列相匹配的索引输出为1

指导将不胜感激。

+2

我想你忘了作业标签 – 2009-08-29 02:50:24

+0

我很确定它不是相关标签。谢谢你的意见。 – Rachel 2009-08-29 03:03:55

+0

也许你可以编辑这个问题,提到你不想使用STL。如果这不是功课,我也很想知道原因。 – avakar 2009-08-29 05:53:27

回答

4

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

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

编辑:要做到这一点没有std :: search,请按照我提供的链接上的示例,它显示了如何完成搜索。如果你使用C风格,你会使用指针(比如int *)而不是ForwardIterator。唯一棘手的是位于循环之外的部分,他们在那里确定应该设置什么限制 - 这将变成一些指针算术。

+0

@aem如何实现没有STL搜索算法 – Rachel 2009-08-29 02:47:39

+0

+1从我 - 一个优秀的解决方案。自从我上次写C++以来,这已经太久了。使用STL是要走的路。 – duffymo 2009-08-29 11:18:48