学习vector 的size(),begin(),end(),push_back(),erase(),insert()的使用
// Example16_8vect2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <string>
#include <vector>
struct Review {
std::string title;
int rating;
};
bool FillReview(Review & rr);
void ShowReview(const Review & rr);
int main()
{
// std::cout << "Hello World!\n";
using std::cout;
using std::vector;
vector<Review> books;//books 是一个vector,里面的元素类型是Review类型,Review是个结构体
Review temp;
while (FillReview(temp))
books.push_back(temp);//将元素添加到vector的末尾
int num = books.size();
if (num > 0)
{
cout << "Thank you.You entered the following:\n" << "Rating\tBook\n";
for (int i = 0; i < num; i++)
ShowReview(books[i]);
cout << "Reprising:\n" << "Rating\tBook\n";
vector<Review>::iterator pr;
for (pr = books.begin(); pr != books.end(); pr++)
ShowReview(*pr);
vector<Review> oldlist(books);//使用了拷贝构造函数
if (num > 3)
{
//remove 2 items
books.erase(books.begin() + 1, books.begin() + 3);
cout << "After Erase:\n";
for (pr = books.begin(); pr != books.end(); pr++)
ShowReview(*pr);
//insert 1 item:插入一个元素
books.insert(books.begin(), oldlist.begin() + 1, oldlist.begin() + 2);//在books的开头处添加oldlist 的第2个元素
cout << "After Insertion:\n";
for (pr = books.begin(); pr != books.end(); pr++)
ShowReview(*pr);
}
}
else
cout << "Nothing Entered,nothing gained.\n";
return 0;
}
bool FillReview(Review & rr)
{
std::cout << "Enter book title (quit to quit):";
std::getline(std::cin,rr.title);
if (rr.title == "quit")
return false;
std::cout << "Enter book rating: ";
std::cin >> rr.rating;
if (!std::cin)
return false;
//get rid of rest of input line
while (std::cin.get() != '\n')
continue;
return true;
}
void ShowReview(const Review & rr)
{
std::cout << rr.rating << "\t" << rr.title << std::endl;
}
本文通过一个C++程序实例展示了如何使用vector容器的size、begin、end、push_back、erase和insert方法。程序创建了一个Review结构体类型的vector,填充数据,然后进行元素的添加、删除和插入操作,展示了这些基本操作的用法。

被折叠的 条评论
为什么被折叠?



