我想以同樣的方式訪問「操作向量」函數中的向量,因爲我訪問的矢量[i]而不是vector-> at(i)in下面的代碼。我試圖直接傳遞向量,而不是數組的指針。但是這似乎破壞了程序。任何想法如何實現?進出口新的使用STD庫,我大多都從C訪問一個像函數內的數組[]內的向量
#include <vector>
#include <iostream>
#define vectorsize 5
struct st_test {
int ii;
float dd;
};
void manipulatevector(std::vector<struct st_test> *test) {
test->resize(vectorsize);
for(int i=0;i<vectorsize;i++) {
test->at(i).dd = i*0.4f;
test->at(i).ii = i;
}
}
void manipulatearray(struct st_test test[vectorsize]) {
for(int i=0;i<vectorsize;i++) {
test[i].dd = i*0.4f;
test[i].ii = i;
}
}
void main() {
std::vector<struct st_test> test1;
manipulatevector(&test1);
struct st_test test2[vectorsize];
manipulatearray(test2);
std::cout << "Vector" << std::endl;
for(int i=0;i<vectorsize;i++) {
std::cout << test1.at(i).dd << std::endl;
}
std::cout << "Array" << std::endl;
for(int i=0;i<vectorsize;i++) {
std::cout << test2[i].dd << std::endl;
}
}
'test-> resize(vectorsize);'change to'test.resize(vectorsize);' – neciu 2012-03-01 12:08:20
@neciu,謝謝,完成。 – hmjd 2012-03-01 12:10:29