访问向量中的struct元素

时间:2012-01-24 18:13:05

标签: c++ struct segmentation-fault

我有元素的载体,

vector<ImageData> data ;

这里是ImageData的定义

#ifndef IMAGEDATA_H
#define IMAGEDATA_H
#include <iostream>
#include <vector>
using namespace std;
struct ImageData {

                std::string cx;
                std::string cy;
                std::string cw;
                std::string ch;
                std::string ht;
                std::string wd;
                std::string ut;
                std::string rip;
                std::string imgFormat;
                std::string dIITest;
                vector<std::string> imageUrls;

                ImageData()
                {
                        cx="";
                        cy="";
                        cw="";
                        ch="";
                        ht="";
                        wd="";
                        ut="";
                        rip="foo";
                        imgFormat="";
                        dIITest="";
                        imageUrls.clear();
                }
};

在另一种方法上,当我尝试按如下方式访问此结构元素时,我回到分段失败。

for(int i = 0 ; (int) data.size();i++)
{
    cout<<data[i].rip;
}

本质上是这个代码转储。

为什么会这样?

任何想法?

1 个答案:

答案 0 :(得分:4)

for循环应该是:

for (size_t i = 0; i < data.size(); i++)
                 //^^^