简单的vector类的使用
#include
#include
#include
using namespace std;
const int NUM = 5;
int main()
{
vector ratings(NUM);
vector titles(NUM);
cout<<"You will do exactly as told. You will enter\n"
<>ratings[i];
cin.get();
}
cout<<"Thank you.You entered te following:\n"
<<"Ratings\tBook\n";
for(i=0;i
empty() 堆栈为空则返回真
pop() 移除栈顶元素
push() 在栈顶增加元素
size() 返回栈中元素数目
top() 返回栈顶元素
ratings.begin();//指向表示容器第一个元素的迭代器
ratings.end();//指向表示超过容器尾的迭代器
ratings.push_back(5);//在末尾添加元素
cout< old_v;
vectornew_v;
……
old_v.insert(old_v.begin(),new_v.begin()+1,new_v.end());
而且,这样拥有超尾元素是非常方便的,这使得在矢量尾部附加元素非常简单
old_v.insert(old_v.end(),new_v.begin()+1,new_v.end());
基本操作的使用例子
#include
#include
#include
using namespace std;
struct Review
{
std::string title;
int rating;
};
bool FillReview(Review & rr);
void ShowReview(const Review & rr);
int main()
{
vector books;
Review temp;//定义结构体类型的变量
while(FillReview(temp))
books.push_back(temp);
int num=books.size();
if(num>0)
{
cout<<"Thank you.You entered the following:\n"
<<"Rating\tbook\n";
for(int i=0;i::iterator pr;//指针
for(pr=books.begin();pr!=books.end();pr++)
ShowReview(*pr);
vector oldlist(books);//被用来拷贝结构体
if(num>3)
{
//romove 2 items
books.erase(books.begin()+1,books.begin()+3);
cout<<"After insertion:\n";
for(pr=books.begin();pr!=books.end();pr++)
ShowReview(*pr);
}
books.swap(oldlist);
cout<<"Swapping oldlist with books:\n:";
for(pr=books.begin();pr!=books.end();pr++)
ShowReview(*pr);
}
else
cout<<"Nothing entered ,nothing gained/\n";
return 0;
}
bool FillReview(Review & rr)
{
cout<<"Enter book title (quit to quit):";
getline(cin,rr.title);
if(rr.title=="quit")
return false;
cout<<"Enter book rating: ";
cin>>rr.rating;
if(!cin)
return false;
//get rid of rest of input line
while(cin.get()!='\n')
continue;
return true;
}
void ShowReview(const Review & rr)
{
cout<
3个代表性的STL函数:for_each()、random_shuffle()和sort().
vector::iterator pr;
for(pr==books.begin();pr!=books.end();pr++)
ShowReview(*pr);
可以替换为
for_each(books.begin(),books,end(),ShowReview);
Random_shuffle()函数
---------------------------------------------------
还是写具体用到的一些东西吧
lower_bound
lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个不小于value 的值。
调用lower_bound之前必须确定序列为有序序列,可用来查找元素所在的位置