Вместо необработанного массива из 2 членов оберните его в структуру, подобную Point:
struct Point {
GLDouble[2] coords;
void setCoordinates(GLDouble x, GLDouble y)
{
coords[0] = x;
coords[1] = y;
}
/* consider adding constructor(s) and other methods here,
* if appropriate
*/
};
std::vector<std::vector<Point>> ThreadPts(4);
while(step--)
{
fx += dfx;
fy += dfy;
dfx += ddfx;
dfy += ddfy;
ddfx += dddfx;
ddfy += dddfy;
Point p;
p.setCoordinates(fx,fy);
ThreadPts[currentvector].push_back(p);
}
Он занимает столько же памяти, что и массив из 2 элементов, и имеет более читаемую семантику, чеммассив.