如果元素不存在,向量是否返回false?我试图遍历一个向量并打印出每个已排序的元素,只要它们存在 . 这是我正在使用的代码的片段:
typedef struct {
string Name;
map<string,string> Numbers;
} Person
bool ComparebyAlpha(const Person &person1, const Person &person2) {
return person1.Name < person2.Name;
}
voic print_Contacts(vector <Person> Contacts) {
sort(Contacts.begin(), Contacts.end(), ComparebyAlpha);
int num = 0;
while (Contacts[num]) {
cout << Contacts[num].Name;
num++;
}
}
2 回答
而不是
while
循环,你可以使用一个
for
循环要么
最好使用iterators迭代stl容器,这样就不会索引超出范围,因为它们使用
begin
和end
.不,如果您尝试访问超出其大小的向量元素,它将是未定义的行为 .
你可以写简单