x1-0; y1-0;- это же нулевой вектор?
Vx1=40; Vy1=0;- Т.е. у вас какие-то параметрически заданные лучи? Начиная с точки {x1, y1} вдоль вектора {Vx1, Vy1}? И надо проверить, что два луча пересекутся? Это лучи или прямые - считается ли пересечением, если вектор Vx, Vy отложить назад, т.е. вычесть из начальной точки?
vector->begin()
. И этой функции должно быть глубоко пофигу - исходный вектор там в куче или в стеке.
Если плоскость большая и надо, допустим, самую плотно покрытую точку найти - то можно двумерное дерево отрезков запилить. Или для экономии памяти - мою любимую структуру данных: дерево отрезков декартовых деревьев (в бинарном дереве точно также можно делать добавление на отрезке, как и в дереве отрезков).
Если же брать другое обобщение этой задачи - именно отрезки на плоскости, то там уже общих пересечений особо может и не быть вообще. Ибо два отрезка на плоскости пересекаются по точке. Что вы там хотите найти - все точки пересечения?
Но в таких задачах все-равно часто работает метод сканирующей прямой (решение, что я привел к вопросу - по сути и есть частный случай этого метода). Там можно, например, найти есть ли пересечение среди N отрезков за N log N.