vetor de coluna com médias de linha - com std :: accumulate?

Em um esforço para ser o mais preguiçoso possível leio em uma matriz como

vector< vector<double> > data ( rows, vector<double> ( columns ) );

e tente usar tantas guloseimas STL quanto eu puder.

Uma coisa que preciso fazer é calcular os meios de linha. Na programação em estilo C que seria

vector<double> rowmeans( data.size() );
for ( int i=0; i<data.size(); i++ )
    for ( int j=0; j<data[i].size(); j++ )
        rowmeans[i] += data[i][j]/data[i].size();

EmEm C ++, como calcular a média de um vetor de números inteiros usando uma visualização vetorial e gsl_stats_mean? É explicado que, para um vetor de números, é possível calcular um vetor médio em uma linha sem chamar o operador size () em cada etapa:

double mean = std::accumulate(stl_v.begin(), stl_v.end(), 0.0) / stl_v.size();

É possível usar esses iteradores em um vetor de vetores? Uma forma intermediária é

vector<double> rowmeans( rows );
    for ( int i=0; i<data.size(); i++ )
        rowmeans[i] = std::accumulate(data[i].begin(), data[i].end(), 0.0) / data[i].size();

já 1 linha foi! mas usando funções STL é possível se livrar do índice [i] também? (no nível superior é apenas uma questão de coletar os meios de linha).

questionAnswers(2)

yourAnswerToTheQuestion