C++ STL容器vector篇(二) vector容器的构造函数与赋值操作
发布时间:2022-09-27 15:33:28 221 相关标签: # 容器
构造函数
构造函数的调用有四种方式:
- 默认构造函数(无参构造);
- 左闭右开区间元素拷贝给容器本身;
- 构造函数将n个elem拷贝给容器本身;
- 拷贝构造函数
代码如下:
#include
#include
using namespace std;
void printV(vector<int> &v)
{
for (vector<int>::iterator it = v.begin(); it < v.end(); ++it)
{
cout<<*it<<" ";
}
cout<<endl;
}
void test1()
{
// 1. 默认构造函数(无参构造)
vector<int> v1;
for (int i = 0;i<5;i++)
{
v1.push_back(i*2+1);
}
printV(v1);
// 1 3 5 7 9
// 2. 左闭右开区间元素拷贝给容器本身
vector<int> v2(v1.begin()+1, v1.end()-1);
printV(v2);
// 3 5 7
// 3. 构造函数将n个elem拷贝给容器本身
vector<int> v3(10, 2);
printV(v3);
// 2 2 2 2 2 2 2 2 2 2
// 4. 拷贝构造函数
vector<int> v4(v2);
printV(v4);
// 3 5 7
}
int main(int argc, char const *argv[])
{
test1();
return 0;
}
赋值操作
vector数组赋值主要采用的方式是assign()
函数,
#include
#include
using namespace std;
void printV(vector<int> &v)
{
for (vector<int>::iterator it = v.begin(); it < v.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
}
void test1()
{
vector<int> v1;
for (int i = 0; i < 5; i++)
{
v1.push_back(i * 2 + 1);
}
printV(v1);
// 1 3 5 7 9
// 1. 直接赋值
vector<int> v2;
v2 = v1;
printV(v2);
// 1 3 5 7 9
// 2. assign()函数赋值, 左闭右开区间
vector<int> v3;
v3.assign(v1.begin() + 2, v1.end());
printV(v3);
// 5 7 9
// 3. n个elem, assign()函数的重载版本
vector<int> v4;
v4.assign(20, 3);
printV(v4);
// 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
}
int main(int argc, char const *argv[])
{
test1();
return 0;
}
文章来源: https://blog.51cto.com/u_15366127/5622189
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报