2014-03-28 61 views
0

我想通過作爲向量參數列的數組,但我不知道該怎麼做。我正在使用「矢量」庫。我要發佈一個例子澄清我想:作爲向量參數的數組的列

#include <iostream> 
#include <vector> 
using namespace std; 

//function for get the sum of all the elements of a vector H 
double suma(vector<double> H) { 
    double Sum = 0.0; 
    for (int i = 0; i < H.size(); i++) { 
     Sum += H[i]; 
    } 
    return Sum; 
} 

int main() { 
    vector<vector<double> > phi; 
    phi.resize(10, vector<double> (2,1.0)); 
    cout << suma(phi[][1]) << endl; 
} 

它不工作:(誰能幫我提前

感謝

+0

我認爲有一些關於數組和向量的真正基本的東西,你不太明白。由於代碼看似不連貫,我不知道如何幫助解決這個問題。 – Almo

+0

你想通過phi中的某個向量嗎? – 4pie0

+0

數組不是表格。它沒有「欄」。目前還不清楚你的意思是什麼...... –

回答

0

我想你可以寫你的計劃?這樣

#include <iostream> 
#include <vector> 
using namespace std; 

double suma(vector<vector<double> >& H) { 
    double Sum = 0.0; 
    for (size_t i = 0; i < H.size(); ++i) { 
     // probably you need to write one more inner loop to do 
     // something with each vector.This is not very clear with your question 
    } 
    return Sum; 
} 


int main() { 
    vector<vector<double> > phi(10,vector<double> (2,1.0)); 
    cout << suma(phi) << endl; 
} 
0

如果你要計算第一列的總和,你可以做這樣的:

#include <iostream> 
#include <vector> 

using namespace std; 

//function for get the sum of all the elements of a vector H 
double suma(vector<double> H) { 

    double Sum = 0.0; 
    for (int i = 0; i < H.size(); i++) { 
     Sum += H[i]; 
    } 

    return Sum; 
} 

int main() { 

    vector<vector<double> > phi; 

    phi.resize(10, vector<double> (2,1.0)); 
    //if by 0th column you mean 0th vector do this: 
    cout << suma(phi[0]) << endl; 

    //if by 0th column you mean every 0th element of each vector do this: 
    vector<double> temp; 
    for(int i=0; i<phi.size(); i++) 
    { 
     temp.push_back(phi[i][0]); 
    } 
    cout << suma(temp) << endl; 
}