As usual, you can do this without angles, and you probably should. Friends don't let friends use angles.
You are really trying to determine if a vector v is in the arc limited by two other vectors v1 and v2. Start by normalizing all the vectors so they have length 1. Now that we are looking at points on a circle, all you need to do is look at the points (*) v1, v2, v and see if they are in clockwise or anticlockwise order. The function ccw() here does the job: https://algs4.cs.princeton.edu/91primitives/
Or you can try to compute the area of the triangle whose vertices are v1, v2, v using a determinant and check what sign it comes out with. That's essentially the same method. Think about it whichever way seems more natural to you.
You can also use complex numbers to represent points and vectors in 2D. In that case, this code would do the trick:
#include <complex>
typedef std::complex<float> C;
bool is_between(C v, C v1, C v2) {
v /= std::abs(v);
v1 /= std::abs(v1);
v2 /= std::abs(v2);
return ((v - v1) * std::conj(v - v2)).imag() > 0;
}
(*)- I am being a loose with the distinction between points and vectors here, but non-mathematicians probably won't even notice.