我想知道如果用戶輸入的數組與輸入數組匹配,我們如何獲得數組的索引?在C++中如何返回數組的索引如果用戶輸入匹配輸入的數組?
例如:
輸入數組= [1,2,3,4]和用戶輸入陣列= [2,3],比我應該得到如其中兩個陣列相匹配的索引輸出爲1
指導將不勝感激。
我想知道如果用戶輸入的數組與輸入數組匹配,我們如何獲得數組的索引?在C++中如何返回數組的索引如果用戶輸入匹配輸入的數組?
例如:
輸入數組= [1,2,3,4]和用戶輸入陣列= [2,3],比我應該得到如其中兩個陣列相匹配的索引輸出爲1
指導將不勝感激。
使用STL search algorithm,它正是您想要的:「search()算法查找範圍[start1,end1)中的元素[start2,end2)。」你需要提供指向兩個數組的開始和結束的指針;您通過將其長度添加到其開始指針來獲取數組的結束指針。
更好的是,使用STL向量來存儲你的數據而不是數組,然後你可以調用vec.begin()和vec.end()來獲得你想要的迭代器。
編輯:要做到這一點沒有std :: search,請按照我提供的鏈接上的示例,它顯示瞭如何完成搜索。如果你使用C風格,你會使用指針(比如int *)而不是ForwardIterator。唯一棘手的是位於循環之外的部分,他們在那裏確定應該設置什麼限制 - 這將變成一些指針算術。
我想你忘了作業標籤 – 2009-08-29 02:50:24
我很確定它不是相關標籤。謝謝你的意見。 – Rachel 2009-08-29 03:03:55
也許你可以編輯這個問題,提到你不想使用STL。如果這不是功課,我也很想知道原因。 – avakar 2009-08-29 05:53:27