开门见山,先看例子:
#include "stdafx.h"
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main(int argc,_TCHAR* argv[])
{
vector<double> values;
for(int i=1;i<=5;i++) values.push_back(2.5*i); //使用push_back整了一些值进去,关键字:push_back
for(auto x:values) cout<<x<<endl;
cout<<endl;
vector<double> newdata(5,3.5);
newdata.assign(values.begin()+1,values.end()-1); //关键字:assign,begin()+1, end()-1
for(auto x:newdata) cout<<x<<endl;
cout<<endl;
vector<double> newdata2(1,0.0);
newdata2.assign(values.begin(),values.end()); //关键字:newdata2(1,0,0),只有一个元素,但是赋值后有5个。
for(auto x:newdata2) cout<<x<<endl;
return 0;
}
上例中,先定义了一个values,类型为 vector<double>,先是使用push_back,整了一些值进去。
关键字:push_back
然后定义了一个newdata, 5个3.5组成,然后把values的几个值掐头去尾放到newdata中。
关键字:assign,begin()+1, end()-1
第三次,定义了一个newdata2,里面只有1个0.0,但是把values里面的所有东西都放到newdata2中去。
关键字:newdata2(1,0,0),只有一个元素,但是赋值后有5个。
现在,查看各个对象的内容。本例输出结果如下:
好了,剩下的自己看吧。