Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 遍历向量_C++_Iteration - Fatal编程技术网

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您不需要我的电子邮件,只需在您的问题中发布即可