vector 容器(一)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: vector 容器(一)

导航


1.vector 基本认识及构造函数

2.vector 赋值

3.vector 的容量大小

4.vector 的插入删除

5.vector 的数据存取

6.vector 的容器互换

7.vector 预留空间

———————————————————————————————————


1.vector 基本认识及构造函数


功能:与数组十分相似,也成为单端数组

区别:数组是静态的,vector是动态扩展的

动态扩展:并不是原来空间续接新空间,而是将数据拷贝到新空间,释放原来空间


vector容器的迭代器是支持随机访问的迭代器


vector的构造函数


vector< T >v; //默认构造函数

vector(v.begin(),v.end()); //将[ begin(),end())中的拷贝到本身

vector(n,elem); //构造函数将n个elem数据拷贝本身

vector(const vector &vec); //拷贝构造函数


例子:


#include <iostream>
using namespace std;
#include <string>
#include <vector>
void PrintVector(vector<int>&v)  //打印vector中的数据
{
  for(vector<int>::iterator it = v.begin();it!= v.end();it++)
  {
  cout<<(*it)<<" ";
  }
  cout<<endl;
}
void test01()
{
  //vector 构造函数
  vector<int> v;    //1.默认构造函数
  for(int i=0;i<4;i++)
  {
  v.push_back(i);
  }
  PrintVector(v);
  //2.区间构造
  vector<int>v1(v.begin(),v.end());
  PrintVector(v1);
  //3.n个elem构造
  vector<int>v3(5,99);    //存入5个99
  PrintVector(v3);
  //4.拷贝构造函数
  vector<int>v4(v3);
  PrintVector(v4);
}
int main()
{
  test01();
  system("pause");
  return 0;
}



运行结果:



———————————————————————————————————


2.vector 赋值


普通赋值 .push_back()

operator= 赋值

assign 区间赋值

assign n个elem赋值


例:


#include <iostream>
using namespace std;
#include <string>
#include <vector>
void PrintVector(vector<int>&v)  //打印vector中的数据
{
  for(vector<int>::iterator it = v.begin();it!= v.end();it++)
  {
  cout<<(*it)<<" ";
  }
  cout<<endl;
}
void test01()
{
  //vector 赋值
  vector<int> v;
  for(int i=0;i<10;i++)
  {
  //普通赋值
  v.push_back(i);
  }
  PrintVector(v);
  //1.operator=
  vector<int> v1;
  v1 = v;
  PrintVector(v1);
  //2.assign 区间
  vector<int> v2;
  v2.assign(v1.begin(),v1.end());
  PrintVector(v2);
  //3.assign n个elem赋值
  vector<int> v3;
  v3.assign(5,10);
  PrintVector(v3);
}
int main()
{
  test01();
  system("pause");
  return 0;
}



运行结果:




———————————————————————————————————


3.vector 的容量大小


.empty() //判断容器是否为空

.capacity() //容器的容量

.size() //返回容器中的元素个数

.resize(int num) //重新指定容器长度为num,容器变长,则以默认值0填充到新位置;变短超出元素被删

.resize(int num.int elem) //同上,不过多出来的位置填充elem


例:


#include <iostream>
using namespace std;
#include <string>
#include <vector>
void PrintVector(vector<int>&v)  //打印vector中的数据
{
  for(vector<int>::iterator it = v.begin();it!= v.end();it++)
  {
  cout<<(*it)<<" ";
  }
  cout<<endl;
}
void test01()
{
  //vector 赋值
  vector<int> v;
  for(int i=0;i<10;i++)
  {
  //普通赋值
  v.push_back(i);
  }
  PrintVector(v);
  //判断容器是否为空
  if(v.empty())
  {
  cout<<"容器为空"<<endl;
  }
  else
  {
  cout<<"容器不为空"<<endl;
  cout<<"v容器的容量为:"<<v.capacity()<<endl;
  cout<<"容量的大小为:"<<v.size()<<endl;
  }
  v.resize(15);   //重新指定容器长度,多出来部分0填充,少的话对用位置删除
  PrintVector(v);
  v.resize(20,100);  //重新指定容器长度,多出来的部分用100代替
  PrintVector(v);
  v.resize(5);
  PrintVector(v);   //少的部分删除对应位置
}
int main()
{
  test01();
  system("pause");
  return 0;
}


运行结果:



———————————————————————————————————


相关文章
|
4月前
|
存储 C++ 容器
如何将没有复制或移动构造函数的对象放入vector容器
如何将没有复制或移动构造函数的对象放入vector容器
45 0
|
6月前
|
存储 算法 编译器
8.STL中Vector容器的常见操作(附习题)
8.STL中Vector容器的常见操作(附习题)
|
6月前
|
C++ 容器
C++之评委打分案例(vector与deque容器练习)
C++之评委打分案例(vector与deque容器练习)
|
6月前
|
存储 算法 C++
C++一分钟之-容器概览:vector, list, deque
【6月更文挑战第21天】STL中的`vector`是动态数组,适合随机访问,但插入删除非末尾元素较慢;`list`是双向链表,插入删除快但随机访问效率低;`deque`结合两者优点,支持快速双端操作。选择容器要考虑操作频率、内存占用和性能需求。注意预分配容量以减少`vector`的内存重分配,使用迭代器而非索引操作`list`,并利用`deque`的两端优势。理解容器内部机制和应用场景是优化C++程序的关键。
76 5
|
6月前
|
存储 算法 C++
【C++/STL】:vector容器的基本使用
【C++/STL】:vector容器的基本使用
47 1
|
5月前
|
存储 安全 C++
|
5月前
|
存储 算法 C++
【C++】详解STL容器之一的 vector
【C++】详解STL容器之一的 vector
|
6月前
|
算法 C++ 容器
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
287 0
|
6月前
|
算法 编译器 Linux
【C++/STL】:vector容器的底层剖析&&迭代器失效&&隐藏的浅拷贝
【C++/STL】:vector容器的底层剖析&&迭代器失效&&隐藏的浅拷贝
59 0
|
6月前
|
存储 缓存 C++
Vector容器介绍
Vector容器介绍
下一篇
DataWorks