[STL] vector基本用法
vector动态增加大小,并不是在原空间之后持续新空间(因为无法保证原空间之后尚有可供配置的空间),而是以原大小的两倍另外配置一块较大的空间,然后将原内容拷贝过来,然后才开始在原内容之后构造新元素,并释放原空间。因此,对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std; int main()
{
string str[] = {"Alex", "John", "Robert"};
//创建一个空vector容器
vector<int> v1;
//创建一个有10个空元素的vector容器
vector<int> v2();
//创建一个有10个元素的vector容器,并为每个元素赋值为0
vector<int> v3(,);
//根据字符串数组创建vector容器
vector<string> v4(str,str + ); //迭代器法遍历
vector<string>::iterator sIt = v4.begin();
while(sIt != v4.end()){
cout<< *sIt ++ << " ";
}
cout<<endl; //拷贝构造
vector<string> v5(v4);
//下标法遍历
for(int i = ;i < ;i ++){
cout<< v5[i] << " ";
}
cout<<endl; return ;
}
vector创建二维数组:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector < vector <int> > array();
for(int i=; i <; i++)
array[i].resize();//设置数组的大小3X3
//现在可以和使用数组一样使用这个vector
for(int i=; i <; i++)
for(int j=; j <; j++)
array[i][j]=(i*j);
//输出
for(int i=; i <; i++)
{
for(int j=; j <; j++)
cout << array[i][j] << " ";
cout << endl;
}
cout<<"After resizing:"<<endl;
// 添加两行,对列也要重新设置大小
array.resize();
array[].resize();
array[].resize();
//现在是5X3的数组了
for(int i=; i <; i++)
for(int j=; j <; j++)
array[i][j]=(i*j);
for(int i=; i <; i++)
{
for(int j=; j <; j++)
cout << array[i][j] << " ";
cout << endl;
}
return ;
}
二维数组去除重复行:
res.erase(unique(res.begin(), res.end()), res.end());
二维数组迭代输出:
vector<vector<int>>::iterator IE; 3 vector<int>::iterator it;
for(IE=array.begin();IE<array.end();IE++)
{
for (it=(*IE).begin();it<(*IE).end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
[STL] vector基本用法的更多相关文章
- STL vector常见用法详解
<算法笔记>中摘取 vector常见用法详解 1. vector的定义 vector<typename> name; //typename可以是任何基本类型,例如int, do ...
- STL vector简单用法
初涉c++,此为<算法笔记>中的内容,有待个人理解完善. vector vector翻译为向量,叫做"变长数组"更容易理解. 头文件:#include<vecto ...
- STL————vector的用法
一.什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象.可以简单的认为,向量是一个能 ...
- C++标准模板库(STL)——vector常见用法详解
vector的定义 vector<typename> name; 相当于定义了一个一维数组name[SIZE],只不过其长度可以根据需要进行变化,比较节省空间,通俗来讲,vector就是& ...
- STL vector用法介绍
STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...
- STL中的Vector相关用法
STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...
- STL vector 用法介绍
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- stl——vector详解
stl——vector详解 stl——vector是应用最广泛的一种容器,类似于array,都将数据存储于连续空间中,支持随机访问.相对于array,vector对空间应用十分方便.高效,迭代器使ve ...
随机推荐
- 2018南京网络赛L题:Magical Girl Haze(最短路分层图)
题目链接:https://nanti.jisuanke.com/t/31001 解题心得: 一个BZOJ的原题,之前就写过博客了. 原题地址:https://www.lydsy.com/JudgeOn ...
- 20145202马超《网络对抗》Exp5MSF基础应用
20145202马超<网络对抗>Exp5MSF基础应用 本实践目标,掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路.具体需要完成(1)一个主动攻击,如ms08_067 ...
- Map,Hashmap,LinkedHashMap,Hashtable,TreeMap
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap. Map主要用于存储健值对, ...
- Installing python-ldap in Ubuntu
These are the steps to be followed to install python-ldap in Ubuntu. At first, sudo apt-get install ...
- OpenCV代码提取:dft函数的实现
The Fourier Transform will decompose an image into its sinus and cosines components. In other words, ...
- 【LG1975】[国家集训队]排队
[LG1975][国家集训队]排队 题面 洛谷 题解 又是一个偏序问题 显然\(CDQ\) 交换操作不好弄怎么办? 可以看成两次删除两次插入 排序问题要注意一下 代码 #include <ios ...
- CC3200底板测试-烧写CC3200-LAUNCHXL
1. 拿到板子,先研究一下几个跳线帽的作用.我在底板上测到VCC_DCDC_3V3和VCC_BRD之间应该有一个跳线帽的,但是在原理上找不到. 2. LED灯的用途,测试的时候,发现这个灯有时候亮,有 ...
- redis 学习笔记二
redis启动: 直接 redis-server.exe 启动服务,是按照redis默认配置启动的,如果想按照自己的配置文件启动,要加上 redis-server.exe redis.windows ...
- oracle_列转行
wmsys.wm_concat 将表中数据 如 ID USERNAME TYPE 1 刘 下 1 刘 ...
- Web自动化selenium技术快速实现爬虫
selenium是大家众所周知的web自动化测试框架,主要用来完成web网站项目的自动化测试,但其实如果要实现一个web爬虫,去某些网站爬取数据,其实用selenium来实现也很方便. 比如,我们现在 ...