私はvector-> at(i)ではなく、vector [i]の配列にアクセスするのと同じ方法で、以下の "manipulatevector"関数のベクトルにアクセスしたい以下のコード。私は配列を使って行うことができるように、ポインタを直接渡すことを試みました。しかし、これはプログラムを破損しているようです。どのようにこれを達成することができる任意のアイデア?私は主に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);' test.resize(vectorsize)に変更します。 ' – neciu
@neciu、ありがとう。 – hmjd