C++ 如果定义了结构类型的向量,如何检查结构的成员是否为空? struct A{int rollno;int emplyno;}; int main() { 向量obj; 对象推回({10112}); if(obj.rollno==0)//错误 { cout
向量不是C++ 如果定义了结构类型的向量,如何检查结构的成员是否为空? struct A{int rollno;int emplyno;}; int main() { 向量obj; 对象推回({10112}); if(obj.rollno==0)//错误 { cout,c++,c++11,C++,C++11,向量不是A的实例。它没有成员rollno。因此带有注释的行格式不正确 相反,vector是一个容器,其中包含a的一系列实例。在我看来,您似乎希望访问第一个(并且是唯一的一个)向量的元素。从向量的文档中可以看到,您可以使用front成员函数访问第一个元素。您需要访问向量中的结构。您可以通过索引执行此操作: struct A { int rollno; int emplyno; }; int main() { vector<A> obj; obj.push_back({1
A
的实例。它没有成员rollno
。因此带有注释的行格式不正确
相反,vector是一个容器,其中包含
a
的一系列实例。在我看来,您似乎希望访问第一个(并且是唯一的一个)向量的元素。从向量的文档中可以看到,您可以使用front
成员函数访问第一个元素。您需要访问向量中的结构。您可以通过索引执行此操作:
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;
}
}
你知道,如果你把所有内容都放在一行中,没有空格,你的代码的可读性会更差。
if ((obj.size() > 0) && (obj[0].rollno == 0))
{
std::cout << "rollno is empty" << std::endl;
}
for (const A &a : obj)
{
if (a.rollno == 0)
{
std::cout << "Employee '" << a.emplyno << "' has an empty rollno" << std::endl;
}
}