首页 > 其他分享 >vector的用法

vector的用法

时间:2023-07-21 09:01:06浏览次数:32  
标签:insert capacity cout number num 用法 vector

1. 打印函数

   12 template <typename Container>
   13 void display(Container& con) {
   14     for (auto& elem : con) {
   15         cout << elem << " "; 
   16     }          
   17     cout << endl; 
   18 }          
   19            
   20 template <typename Container> 
   21 void printSizeCapacity(const Container& con) {
   22     cout << "con.size() = " << con.size() << endl;
   23     cout << "con.capacity() = " << con.capacity() << endl;
   24 }  

2. vector的初始化

   27     vector<int> num = {1, 3, 5, 7, 9, 8, 6, 4, 2};
   28     vector<int> num2(10, 5);
   29     vector<int> num3(num);
   30     vector<int> num4(num.begin(), num.end());

3. vector的插入与删除

如果是 push_back() 的话,vector的capacity 如果不足,则,capacity *= 2; 。

如果是 insert() 的话,vector 的capacity 视情况而定。设 size = m, capacity = n。 要插入的数量是 t。
如果 n - m < t < m , capacity *= 2;
如果 t > m , 或t > n,则 capacity = t + m。

//insert(it, 999); 在 it 位置插入999.

   27 void test0() {
   28     vector<int> number = {1, 3, 5, 7, 9, 8, 6, 4, 2};
   29     vector<int> number2(13, 5);
   30     display(number);
   31     printSizeCapacity(number);
   32 
   33     cout << endl << "在vector的尾部进行插入与删除" << endl;
   34     number.push_back(100);
   35     number.push_back(200);
   36     display(number);
   37     printSizeCapacity(number);
   38 
   39     cout << endl << "在vector的中间进行插入" << endl;
   40     auto it = number.begin();
   41     it++;
   42     it++;
   43     cout << "*it = " << *it << endl;
   44     number.insert(it, 999);
   45     display(number);
   46     printSizeCapacity(number);
   47     // vector的insert扩容原理
   48     // 将元素的个数size()= m, 容量的大小capacity() = n,
   49     // 将待插入的元素的个数设置为t
   50     // 1、当t < n - m,此时就不会扩容
   51     // 2、当 n - m < t < m,此时会按照2 * m进行扩容
   52     // 3、当n - m < t, m < t < n,此时会按照 t + m进行扩容
   53     // 4、当n - m < t, t > n,此时会按照 t + m进行扩容
   54     number.insert(it, number2.begin(), number2.end());
   55     display(number);
   56     printSizeCapacity(number);
   57 }

标签:insert,capacity,cout,number,num,用法,vector
From: https://www.cnblogs.com/zxinlog/p/17570282.html

相关文章

  • FCKEditor用法
    FCKeditor2.1.1在ASP.NET中的设置和使用(ZT)昨天抛弃了FreeTextBox1.6中文版,改用FCKeditor2.1.1。FCKeditor不仅加上了FLASH插入功能,而且它的兼容性超强:支持多种浏览器包括IE5.5+、Firefox1.0+、Mozilla1.3、Netscape7+;无平台限制,在Windows、Mac、Linux下都能运行;可以和......
  • pytorch使用(三)torch.zeros用法
    torch.zeros用法torch.zeros()是PyTorch中用来创建全0张量的函数。用法为torch.zeros(size,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)。其中,size参数表示张量的形状(shape),可以是一个整数或者一个包含多个整数的tuple。例如,torch.......
  • pytorch使用(四)np.random.randint用法
    np.random.randint用法np.random.randint是numpy库中用于生成随机整数的函数。它的用法如下:numpy.random.randint(low,high=None,size=None,dtype='l')其中,各个参数的含义如下:low:生成的随机整数的下限(包含)。high:生成的随机整数的上限(不包含)。如果不提供high参数,则生......
  • C语言 typedef的用法示例讲解
    typedef是在C和C++编程语言中的一个关键字,作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了使代码方便阅读和理解。一、什么是typedeftypedef是在C和C++编程语言中的一个关键字。作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了......
  • EOF 的用法
    EOF适用范围:针对多组输入输出且数据没有固定数据量问题:采用while(scanf("%d",&n)!=EOF);EOF介绍:EOF全称EndOfFile(C语言标准函数库中表示文件结束符),通常在文本的最后,表示资料结束。C语言中数据都是以字符的ASCII码来存放的。ASCII码值范围是0~127,不可能......
  • 暑假对STL的学习用法
    mapmap<int,int>s;map<int,vector<int>>s;map<int,list<int>>s;这些就是map的初始化法子,前面那个就相当于数组下标,后面的就是键值了,可以用它搞二维数组就像第二三个一样。然后就是他的用处,他可以自动排序,但是是按照前面的key值排序,就是下标拉,不过看你怎么用这个东西,这......
  • Mybatis中IN语句查询、Mybatis中的foreach用法
    1需求查询用户ID为101、102、103的数据,参数是一个集合2在SQL语句中select*fromt_userwhereuser_idin('101','102','103')13在Mybatis中你只需要<selectid="selectUserByIdList"resultMap="usesInfo"> SELECT......
  • linux 中 awk命令中 getline的用法
     001、[root@PC1test02]#ls[root@PC1test02]#seq1012345678910[root@PC1test02]#seq10|awk'{getline;print$0}'##getline把两行当作一行处理,而且跳过了第一行246810 002、[root@PC1test02]#ls[root@PC1test02]#seq1012345......
  • NumPy基本用法
    NumPy(NumericalPython)Python中一个强大的数值计算库,提供了高效的多维数组对象(ndarray)以及相关的数学函数,适用于处理大量的数据和执行各种数值计算任务demoimportnumpyasnp#创建数组:使用np.array()函数可以创建NumPy数组。可以通过列表、元组或其他数组创建新数组。ar......
  • 110.vector
    110.vector1.vector概述vector是最常用的容器之一,功能十分强大,可以储存、管理各种类型的数据。在很多情况下可以用来代替功能比较局限的普通数组,因为我们知道,普通数组只能实现一对一的映射而不能实现一对多的映射,vector就是专门为了解决这个问题而诞生的。vector也可以称为动态......