STL(vector)

简介: STL(vector)

vector:


#include<vector>
using namespace std;
int main(){
  return 0;
}


构造一个动态数组


vector<T> vec
//例如:
vector<int>a  //定义了一个存储整数的动态数组a


插入元素(末端)


//push_back()     添加创造好的元素,使用的是拷贝构造函数
//emplace_back()    构造参数列表来添加元素的方法,使用到是move函数
//例如:
#include<vector>
using namespace std;
int main(){
  vector<int>vec;  //[]
  vec.push_back(1);//[1]
  vec.push_back(2);//[1,2]
  vec.push_back(3);//[1,2,3]
  return 0;
}


删除元素(末端)


#include<vector>
using namespace std;
int main(){
  vector<int>vec;  //[]
  vec.push_back(1);//[1]
  vec.push_back(2);//[1,2]
  vec.push_back(3);//[1,2,3]
  vec.pop_back();  //[1,2]
  vec.pop_back();  //[1]
  return 0;
}


清空(清空vector,并不清空开的内存)


//vector<int>v;
vector<int>().swap(v);


size()


vec.size()//计算vec的元素个数
//例如:
#include<vector>
#include<cstdio>
using namespace std;
int main(){
  vector<int>vec;  //[]
  vec.push_back(1);//[1]
  vec.push_back(2);//[1,2]
  vec.push_back(3);//[1,2,3]
  for(int i=0;i<vec.size();i++){
    printf("%d",vec[i]);
  }
  return 0;
}


assign()函数


将一个容器中元素全部复制到另一个容器中。


void assign(string first,string last);//将first中的元素复制到last中


vector应用


用动态数组储存自定义数据


//结构体
struct Student{
  string name;//名字
  int age;  //年龄
};
int main(){
  vector<Student>class1;//班级
  Student stu1,stu2;    //学生1,学生2
  stu1.name="xiaohong";
  stu1.age=12;
  stu2.name="yuhaoran";
  stu2.age=25;
  class1.push_back(stu1);
  class1.push_back(stu2);
  return 0;
}


构造函数


int n=10;
vector<int>vec(n,1);


二维动态数组


//vector<vector<int> >vec2
int n=5;
vector<vector<int> >vec2;
for(int i=0;i<n;i++){
  vector<int>x(i+1,1);
  vec2.push_back(x);
}
for(int i=0;i<n;j++){
  for(int j=0;j<vec2[i].size(); i++){
  cout<< ve2[i][j] << " ";
  }
  cout << endl;
}


二维vector的使用


#include<iostream>
#include<vector>
using namespace std;
int main(){
  vector<vector<int> >v2d;
  for(int i=0;i<5;i++){
    v2d.push_back(vector<int>());
  }
  for(int i=0;i<v2d.size();i++){
    for(int j=0;j<=i;j++){
      v2d[i].push_back((i+1)*(j+1));  
    }
  }
  for(int i=0;i<v2d.size();i++){
    for(int j=0;j<v2d[i].size();j++){
      cout<< i+1 << "*" << j+1 << "=" < \t
    }
    cout<<endl;
  }
  return 0;
}
相关文章
|
2月前
|
存储 C++ 索引
C++:STL - vector
C++:STL - vector
47 1
|
2月前
|
算法 Java 容器
STL_vector
STL_vector
32 0
|
9月前
|
存储 C++ 容器
【C++】STL之vector操作
【C++】STL之vector操作
|
9月前
|
存储 算法 编译器
【剖析STL】vector
vector的介绍及使用 1.1 vector的介绍 cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器。
25 0
|
存储 Linux C++
C++【STL】之vector的使用
C++ STL vector类常用接口详细讲解,干货满满!
86 0
C++【STL】之vector的使用
|
小程序 C++ 容器
C++ STL学习之【vector的使用】
vector 是表示可变大小数组的序列 容器,其使用的是一块 连续 的空间,因为是动态增长的数组,所以 vector 在空间不够时会扩容;vector 优点之一是支持 下标的随机访问,缺点也很明显,头插或中部插入效率很低,这和我们之前学过的 顺序表 性质很像,不过在结构设计上,两者是截然不同的
253 0
C++ STL学习之【vector的使用】
|
算法 C++ 容器
STL之vector
STL之vector
|
存储 C++ 容器
【C++】-- STL之vector详解(一)
【C++】-- STL之vector详解
117 0
【C++】-- STL之vector详解(一)
|
Linux 编译器 C++
【C++】-- STL之vector详解(二)
【C++】-- STL之vector详解
126 0
【C++】-- STL之vector详解(二)