访问向量中的结构元素

Accessing struct element in a vector

本文关键字:结构 元素 向量 访问      更新时间:2023-10-16

我有元素向量,

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;
}

本质上,这个代码转储。

为什么会发生这种情况?

有什么想法吗?

for循环应为:

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