2009-08-29 44 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