鱼C论坛

 找回密码
 立即注册
查看: 1328|回复: 0

vector常用操作

[复制链接]
发表于 2019-7-30 21:43:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Julia999 于 2019-7-30 21:44 编辑
最近在搞一个项目,需要用到二维的vector,所以想着总结一下,也方便日后的使用和交流~
当然,我所写的东西都是很简单基础知识,但是所有的大工程其实都是一点点搭建起来的。


使用vector,首先需要导入头文件#include<vector>
定义一维vector,并初始化:
  1. vector<int>vec;
  2. for (int i = 0; i<100; i++)
  3. {
  4.     vec.push_back(i);
  5. }
复制代码

定义二维vector,并初始化:

  1. vector<vector<double>> v_x;
  2. vector<double>temp;
  3. //double x[306][3]已知
  4. void tovector(double x[306][3])
  5. {
  6.         for (int i = 0; i < 306; i++)
  7.         {
  8.                 for (int j = 0; j < 3; j++)
  9.                 {
  10.                         temp.push_back(x[i][j]);
  11.                 }
  12.                 v_x.push_back(temp);
  13.                 temp.clear();
  14.         }
  15. }
复制代码
  1. vector<vector<int> > array(m); //这个m一定不能少
  2. //初始化一个m*n的二维数组
  3. for(int i=0;i<m;i++) {
  4.     array[i].resize(n);
  5. }
复制代码

  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;

  4. int main() {
  5.     vector<vector<int> > array(4);
  6.     for(int i=0;i<4;i++) {
  7.         array[i].resize(5);
  8.     }
  9.     //输出二维数组的行和列
  10.     cout<<"Row:"<<array.size()<<"  Column:"<<array[0].size()<<endl;
  11.     //输出二维数组
  12.     cout<<"["<<endl;
  13.     for(int j=0;j<array.size();j++) {
  14.         cout<<"["<<" ";
  15.         for(int k=0;k<array[0].size();k++) {
  16.             cout<<array[j][k]<<" ";
  17.         }
  18.         cout<<"]"<<endl;
  19.     }
  20.     cout<<"]"<<endl;
  21.     return 0;
  22. }

复制代码


判断一个元素是否出现在vector中
  1. vector<int>::iterator ret;
  2. ret = std::find(index4.begin(), index4.end(), 1);
  3. if (ret == index4.end())
  4. {
  5.     cout<<"找不到!"<<endl;
  6. }
  7. else
  8. {
  9.     cout<<“找到了!”<<endl;
  10. }
复制代码


清空vector
  1. //1.清除元素不回收内存
  2. vec.clear();
  3. cout << vec.size() << endl;//输出0
  4. cout << vec.capacity() << endl;//输出141
  5. //2.清除元素回收内存
  6. vector<int>().swap(vec);//或者vec.swap(vector<int>());
  7. cout << vec.size() << endl;//输出0
  8. cout << vec.capacity() << endl;//输出0
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 13:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表