C++ 二维向量元素求和困难

C++ 二维向量元素求和困难,c++,vector,2d,C++,Vector,2d,我有一个向量向量,它给了我一个nxn矩阵。我使用for循环对矩阵中的所有元素求和,得到了奇怪的结果 有关守则如下: int main(){ while(cin){ int n = 0; int sum = 0; cout << "\n\nEnter a size (n) for the matrix: "; cin >> n; vector<vector<int> > matrix ( n, vector<int> ( n ) )

我有一个向量向量,它给了我一个nxn矩阵。我使用for循环对矩阵中的所有元素求和,得到了奇怪的结果

有关守则如下:

int main(){
while(cin){

int n = 0;
int sum = 0;

cout << "\n\nEnter a size (n) for the matrix: ";
cin >> n;

vector<vector<int> > matrix ( n, vector<int> ( n ) );
int k = 0;

for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < n; j++ )
        matrix[i][j] = k++;
}

for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < n; j++ )
        cout<< setw ( 3 ) << matrix[i][j] <<' ';
        cout<<'\n';
}

for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < n; j++ )
        sum += matrix[i][j];
}
cout << "\nThe sum of the elements of the matrix is: " << sum << ' \n';
}
}
intmain(){
while(cin){
int n=0;
整数和=0;
cout>n;
向量矩阵(n,向量(n));
int k=0;
对于(int i=0;i您可以输出
'\n'
。请注意
\n
前面的空格。这是两个字符/一个字符串。但是,您将
'
s放在它周围,这意味着它将两个字符解释为一个字符,从而产生奇怪的结果。请将其更改为
“\n”


奖励EPIC-PHUNZIES内容:我是如何计算出来的?嗯……可能是什么?输出的总和正确,所以后面一定有问题。输出总和后唯一的问题是什么?输出
“\n”
…嗯,有什么问题吗?问题解决了。

正如你所知,有一个算法,
std::accumulate
就是这个意思。向量向量似乎不是很好。或者更确切地说,如果它是(或者应该),我似乎无法正确实现它。请展示一个更完整的代码示例。(最好是完全完整的)@Kickasstimus,向量向量应该只有一个向量。你用零初始化求和了吗?是的,我不知道我在想什么,我把它放在那里,然后试着调试它…然后把它发布在这里…我把它归咎于缺乏咖啡/睡眠/卫生。是的,别担心。我们都有3个小时2个字符的固定时间。