我有元素的载体,
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;
}
本质上是这个代码转储。
为什么会这样?
任何想法?
答案 0 :(得分:4)
for
循环应该是:
for (size_t i = 0; i < data.size(); i++)
//^^^