c ++:每次打印矢量时如何打印矢量元素的索引?
c++: How can I print vector elements' indexes every time I print the vector?
所以,我有一个船的向量。我需要访问这些船并定期修改它们(即删除它们),所以如果我可以打印它们的索引以及所有其他信息,那就太好了,但我似乎无法弄清楚如何。
我最接近它的是一个简单的 for 循环,但随着向量大小的增长,它最终会打印当前索引和之前的索引(因为我的 i < vector.size())
vector <Boat> berths_reg;
//print vector elements info
void Boat::print_info()
{
cout << endl;
for(int i = 0; i < berths_reg.size(); i++)
{
cout << "Index : " << i << endl;
}
cout << "Boat type : " << type << endl;
cout << "Boat length : " << length << endl;
cout << "Draft depth : " << draft << endl;
cout << endl;
}
//iterate through vector to print all elements
void print_vector()
{
vector <Boat> ::iterator it;
for (it = berths_reg.begin(); it != berths_reg.end(); ++it)
{
it->print_info();
}
}
//Storing boats (objects data) inside vector
void add_boat(Boat* b, string type, int length, int draft)
{
b->get_type(type);
b->get_length(length);
b->get_draft(draft);
berths_reg.push_back(*b);
}
在同一个循环中简单地打印索引和信息:
void print_vector()
{
for(int i = 0; i < berths_reg.size(); ++i)
{
cout << "Index : " << i << endl;
berths_reg[i].print_info();
}
}
所以,我有一个船的向量。我需要访问这些船并定期修改它们(即删除它们),所以如果我可以打印它们的索引以及所有其他信息,那就太好了,但我似乎无法弄清楚如何。
我最接近它的是一个简单的 for 循环,但随着向量大小的增长,它最终会打印当前索引和之前的索引(因为我的 i < vector.size())
vector <Boat> berths_reg;
//print vector elements info
void Boat::print_info()
{
cout << endl;
for(int i = 0; i < berths_reg.size(); i++)
{
cout << "Index : " << i << endl;
}
cout << "Boat type : " << type << endl;
cout << "Boat length : " << length << endl;
cout << "Draft depth : " << draft << endl;
cout << endl;
}
//iterate through vector to print all elements
void print_vector()
{
vector <Boat> ::iterator it;
for (it = berths_reg.begin(); it != berths_reg.end(); ++it)
{
it->print_info();
}
}
//Storing boats (objects data) inside vector
void add_boat(Boat* b, string type, int length, int draft)
{
b->get_type(type);
b->get_length(length);
b->get_draft(draft);
berths_reg.push_back(*b);
}
在同一个循环中简单地打印索引和信息:
void print_vector()
{
for(int i = 0; i < berths_reg.size(); ++i)
{
cout << "Index : " << i << endl;
berths_reg[i].print_info();
}
}