¿Cómo acceder al índice de un vector 2D por la función at ()?

Voy a inicializar un vector 2D en una función miembro, donde los argumentos de entrada están planificados para ser alimentados a índices determinados dentro del argumento de la función. Además, no voy a utilizar el operador [] para acceder a los miembros debido a cuestiones de seguridad. ¿Cómo puedo usar la función at () para acceder al índice de un vector 2D, como se muestra a continuación?

vector<vector<double>> weight;

void Connection::setWeight(const double& value, const double& i, const double& j)
{
    // The other scheme except: weight[i][j] = value;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta