返回

C++ STL容器vector篇(二) vector容器的构造函数与赋值操作

发布时间:2022-09-27 15:33:28 221
# 容器

构造函数

构造函数的调用有四种方式:

  1. 默认构造函数(无参构造);
  2. 左闭右开区间元素拷贝给容器本身;
  3. 构造函数将n个elem拷贝给容器本身;
  4. 拷贝构造函数

代码如下:

#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;
}

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Oracle错误码ORA-12516解决方案 2022-09-27 15:00:41