C++ 遍历向量
我的课程如下:C++ 遍历向量,c++,iteration,C++,Iteration,我的课程如下: 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; } }; 类描述符 { 公众: 浮席、易; 载体fv; 描述符() {
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;
}
};
类描述符
{
公众:
浮席、易;
载体fv;
描述符()
{
}
描述符(浮点x、浮点y、向量常量和f)
{
席=X;
yi=y;
fv=f;
}
};
还有一个描述符向量,如下所示:vector keypoint代码>
现在我想使用迭代器打印关键点的元素,因为fv是双精度向量
我写了这段代码
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++;
}
}
vector::迭代器;
for(it=keypoint.begin();it!=keypoint.end();it++){
您的代码看起来是正确的,您是否有任何测试代码来演示问题?您为什么要使用f
?您使用的循环似乎没有必要。我建议您使用
vector<Descriptor>::iterator it;
for(it = keypoint.begin(); it != keypoint.end(); it++){
cout << it->xi << "---" << it->yi <<endl;
for(int i = 0; i < it->fv.size(); i++){
cout << it->fv[i] << endl;
}
}
vector::迭代器;
for(it=keypoint.begin();it!=keypoint.end();it++){
席西显示了实际代码,你可以编写的最小程序,编译、运行和演示这个问题。因为<>代码> --- 没有出现在你的示例输出中,输出不是来自你所显示的代码片段。你所发布的代码,在使用指针算术时有点奇怪,应该按照预期的方式工作。。据推测,向量不包含您认为它所包含的内容。您能否发布一些代码(最好是一个完整的小程序)以显示在获得此输出之前如何填充向量?您的代码看起来是正确的,我更希望for(int I=0;I fv.size();I++){coutDear Mike,请将您的电子邮件地址发送给我,以向我发送代码。@user2671120:如果您想要答案,请更新问题以包含演示问题的代码。将其发送给我没有意义;我不是自由调试器。我也应用了您的代码,但得到了相同的输出:3--45 6 7 5 6 7 5 5 6 7然后我建议发布您的输入内容,然后有人可以重新创建场景,并可能告诉您有什么问题亲爱的sedavidw,请向我发送电子邮件以发送我的代码。@user2671120您不需要我的电子邮件,只需在您的问题中发布即可