2012-01-24 3 views
1

У меня есть вектор элементов,Доступ STRUCT элемента в векторе

vector<ImageData> data ; 

здесь S определение 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(); 
       } 
}; 

на другой метод, когда я пытаюсь получить доступ к этой структуре элементов следующим образом I потеря сегментации не выполняется.

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

в основном этот код свалки.

Почему это происходит?

любые идеи?

+0

ваш для цикла не имеет конечного состояния, должен быть 'я <(интермедиат) data.size();'. Я не уверен, что это ваша проблема или просто проблема с копией/вставкой/очисткой. –

+0

Можно ли увидеть сегмент кода, в котором вы размещаете объекты, которые вы помещаете в вектор? – pg1989

+0

OMG. Я умственно отсталая. Благодарю. – DarthVader

ответ

4

for цикл должен быть:

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

OMG. Я умственно отсталая. Благодарю. – DarthVader

Смежные вопросы