C++ std::vector 基本用法2
#include <iostream>
#include <vector> using namespace std; int main()
{
int ar[10] = { 1,2,3,4,5,6,7,8,9,0 };
std::vector<int> vec5(ar, ar + 10); // reverse
size_t cap1 = vec5.capacity(); // = 10
vec5.reserve(20); // = Request a change in capacity
size_t cap2 = vec5.capacity(); // = 20 // data()
int * pInt = vec5.data();
for (size_t i=0; i<vec5.size(); ++i)
{
cout << pInt[i];
}
cout << endl; // 1234567890 // begin end
for (auto it=vec5.begin(); it != vec5.end(); ++it)
{
cout << *it;
}
cout << endl; // 1234567890 // cbegin cend 常量,保证不改变 vector 中的元素
for (auto it = vec5.cbegin(); it != vec5.cend(); ++it)
{
cout << *it;
}
cout << endl; // 1234567890 // rbegin rend 注意偏移是 ++ 操作
for (auto it = vec5.rbegin(); it != vec5.rend(); ++it)
{
cout << *it;
}
cout << endl; // 0987654321 // iterator erase (const_iterator position);
vec5.erase(vec5.begin()); // delete 1; size = 9 // iterator erase (const_iterator first, const_iterator last);
vec5.erase(vec5.begin(), vec5.begin()+2); // delete 2, 3; size = 7 // max_size; Returns the maximum number of elements that the vector can hold.
// 系统或者库的设计上线。并非机器所能申请的最大大小。
size_t maxSize = vec5.max_size(); std::vector<int> vec6(2);
vec5.swap(vec6); // 两者交换
///vec5.swap(std::vector<int>()); // 2015支持,2017不支持 // iterator insert( iterator pos, const T& value );
auto it = vec5.begin();
vec5.insert(it, 101); it = vec5.begin(); // it 已经失效
vec5.insert(it +1, 102); // iterator insert(const_iterator pos, const T& value);
const std::vector<int>::iterator cit = vec5.begin();
vec5.insert(cit, 103); // void insert( iterator pos, size_type count, const T& value ); // iterator insert( const_iterator pos, size_type count, const T& value );
vec5.insert(vec5.begin(), 2, 104); // insert 2 个 104 // template< class InputIt >
// void insert(iterator pos, InputIt first, InputIt last);
vec5.insert(vec5.begin(), vec6.begin(), vec6.end()); // insert vec6 // iterator insert( const_iterator pos, std::initializer_list<T> ilist );
vec5.insert(vec5.begin(), {105,106,107}); }
C++ std::vector 基本用法2的更多相关文章
- C++ std::vector 基本用法
#include <iostream> #include <vector> using namespace std; int main() { // 初始化的方式 std::v ...
- c++转载系列 std::vector模板库用法介绍
来源:http://blog.csdn.net/phoebin/article/details/3864590 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作 ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- C++:vector的用法详解
原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于 ...
- STL中的Vector相关用法
STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...
- std::string,std::vector,std::accumulate注意事项
在用string做字符串拼接时,会发现随着string的增大越来越慢,原因主要是string(和vector)是基于现行内存的数据结构,在海量数据时,经常会申请新的一块内存,把原有的数据拷贝过去然后再 ...
- C++学习二 vector的用法(使用sort对于vector排序)
一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...
- C++序列容器之 vector常见用法总结
一.关于vector 本文默认读者具有一定的c++基础,故大致叙述,但保证代码正确. vector是一个动态的序列容器,相当于一个size可变的数组. 相比于数组,vector会消耗更多的内存以有效的 ...
- STL vector常见用法详解
<算法笔记>中摘取 vector常见用法详解 1. vector的定义 vector<typename> name; //typename可以是任何基本类型,例如int, do ...
随机推荐
- tensorflow常用函数解释
从二维数组中选一个矩形 import tensorflow as tf data = [[1,2,3,4,5,6,7,8],[11,12,13,14,15,16,17,18]] x = tf.stri ...
- 【Web技术】314- 前端组件设计原则
点击上方"前端自习课"关注,学习起来~ 译者:@没有好名字了译文:https://github.com/lightningminers/article/issues/36,http ...
- docker初体验:Docker部署SpringCloud项目eureka-server
Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version= ...
- 最新115道华为、京东、滴滴、美团精选Java面试题整理
京东面试题 1. 一般sql注入怎么发现触点的,从源码阐述sqlmap如何测试注入点的. 2. masscan扫描端口时靠什么检测,为什么这么快? 请详述. 3. 你写过哪些小工具,你为你使用过的工具 ...
- python学习-while
"""while 条件: 条件满足时,干的事情.如果条件一直满足,一直去重复的执行代码.直接条件不满足为止,停止循环."""# salary ...
- chrome显示正常,IE报400的错
发现是因为参数里面有一个是中文,应该是IE没有转码,所以会报错,只要用encodeURI()实现转码即可
- cd ..、cd / 和 cd ~ 的区别
cd ..是回到上一级目录 cd . 是当前目录 cd / 是回到根目录 cd ~ 回到用户主目录
- python中几种自动微分库
简单介绍下python的几个自动求导工具,tangent.autograd.sympy: 在各种机器学习.深度学习框架中都包含了自动微分,微分主要有这么四种:手动微分法.数值微分法.符号微分法.自动微 ...
- 开源资产管理系统Snipe-IT
CentOS7安装IT资产管理系统Snipe-IT介绍资产管理工具Github:https://github.com/snipe/snipe-it官网:https://snipeitapp.com/D ...
- iOS---OBJC_ASSOCIATION_ASSIGN可能引起的Crash
//OBJC_ASSOCIATION_ASSIGN类似于我们常用的assign,assign策略的特点就是在对象释放以后,不会主动将应用的对象置为nil,这样会有访问僵尸对象导致应用崩溃的风险.为了解 ...