Используйте алгоритм поиска STL , который выполняет именно то, что вы хотите: «Алгоритм search () ищет элементы [start2, end2) в диапазоне [start1, end1)». Вам нужно будет указать указатели на начало и конец двух массивов; Вы получаете конечный указатель для массива, добавляя его длину к его начальному указателю.
Лучше, используйте вектор STL для хранения ваших данных вместо массива, а затем вы можете просто вызвать vec.begin () и vec.end (), чтобы получить нужные итераторы.
Редактировать: Чтобы сделать это без std :: search, следуйте примеру по предоставленной мной ссылке, которая показывает, как можно выполнить поиск. Если вы делаете это в стиле C, вы будете использовать указатели (например, int *), а не ForwardIterator. Единственный хитрый бит - это часть вне цикла, где они выясняют, какой предел должен быть установлен - это превратится в некоторую арифметику указателей.