函数原型
- assign(beg,end) //将[beg,end)区间中的数据拷贝赋值给本身
- assign(n,elem) //将n个elem拷贝赋值给本身
示例:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
for(int i=0;i<10;i++)
v1.push_back(i);
print(v1);
}
int main()
{
test();
return 0;
}
输出结果如下:
接下来做赋值操作
第一种:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
for(int i=0;i<10;i++)
v1.push_back(i);
vector<int>v2;
v2=v1;
print(v2);
}
int main()
{
test();
return 0;
}
输出结果仍然不变
第二种:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
for(int i=0;i<10;i++)
v1.push_back(i);
vector<int>v2;
v2.assign(v1.begin(),v1.end());
print(v2);
}
int main()
{
test();
return 0;
}
注意这里的assign中的begin可以取得 但是end不能取得
若是打印n个元素:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<numeric>
#include<set>
#include<map>
#include<vector>
#define ll long long
using namespace std;
void print(vector<int>&v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
}
void test()
{
vector<int>v1;
v1.assign(10,100);
print(v1);
}
int main()
{
test();
return 0;
}