2016-12-14 77 views
-5
struct A { int rollno; int emplyno; }; 

int main() 
{ 
    vector<A> obj; 
    obj.push_back({10,112}); 
    if (obj.rollno == 0) // error 
    { 
     cout << "rollno is empty"<<endl; 
    } 
} 
+1

你知道你可以讓你的代碼,即使少可讀可通過指數做到這一點你把**所有**放在一行中,沒有空格。 – StoryTeller

+0

閱讀您最喜愛的書籍中的向量介紹。 – molbdnilo

回答

0

該向量不是A的實例。它沒有會員rollno。因此,評論界線不健全。

而是,矢量是容納A的實例序列的容器。在我看來,你想訪問矢量的第一個(也是唯一的)元素。從矢量文檔中可以看到,可以使用front成員函數訪問第一個元素。

1

您需要訪問向量中的結構。

if ((obj.size() > 0) && (obj[0].rollno == 0)) 
{ 
    std::cout << "rollno is empty" << std::endl; 
} 

如果您需要檢查矢量內的A任何情況下,你可以使用一個循環:

for (const A &a : obj) 
{ 
    if (a.rollno == 0) 
    { 
     std::cout << "Employee '" << a.emplyno << "' has an empty rollno" << std::endl; 
    } 
} 
相關問題