FixedVector<int> Array1(5);
Array1.push_back(1);
Array1.push_back(5);
Array1.push_back(10);
std::cout << "Value 5 is at index " << Array1.find(5) << std::endl;
std::cout << "Value 1 is at index " << Array1.find(1) << std::endl;
The output for both values are 3, which is the size of the array.
The function somehow always assigns size_ as index_ even though the value is indeed inside the array.
You should probably try to break away from the for loop once you have found it, otherwise it will keep looping. Try that first. Either break, or just return j once the value has been found.