私は次のようなクラスを持っています:
class Descriptor
{
public:
float xi, yi;
vector<double> fv;
Descriptor()
{
}
Descriptor(float x, float y, vector<double> const& f)
{
xi = x;
yi = y;
fv = f;
}
};
また、次のような記述子のベクトルがあります。vector<Descriptor> keypoint;
ここで、fv が double のベクトルであることを考慮して、イテレータを使用してキーポイントの要素を出力したいと考えています。
私はこのコードを書きました
vector<Descriptor>::iterator it;
for(it=keypoint.begin();it!=keypoint.end();it++){
cout<<it->xi <<"---"<<it->yi<<endl;
double* f = it->fv.data();
for(int i=0; i<it->fv.size();i++){
cout<<*f<<endl;
f++;
}
}
しかし、たとえば xi=3 と yi=4 と fv=[5 6 7] がある場合、次のように fv を 3 回出力します: 3 4 5 6 7 5 6 7 5 6 7 修正方法を教えてください...