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 ...
随机推荐
- 【Web技术】399- 浅谈前端代码加密
作者简介:于航,PayPal Senior Software Engineer,在 PayPal 上海负责 Global GRT 平台相关的技术研发工作.曾任职于阿里巴巴.Tapatalk 等企业.f ...
- 《JavaScript 模式》知识点小抄本(上)
介绍 最近开始给自己每周订个学习任务,学习结果反馈为一篇文章的输出,做好学习记录. 这一周(02.25-03.03)我定的目标是<JavaScript 模式>的第七章学习一遍,学习结果的反 ...
- Lamada表达式小技巧介绍
函数式编程 @FunctionalInterface interface Lf{ void dispaly(); } @FunctionalInterface为显示定义函数时编程接口,不符合函数式编程 ...
- 详解 TCP 超时与重传机制——长文预警
上一篇介绍 TCP 的文章「TCP 三次握手,四次挥手和一些细节」反馈还不错,还是蛮开心的,这次接着讲一讲关于超时和重传那一部分. 我们都知道 TCP 协议具有重传机制,也就是说,如果发送方认为发生了 ...
- luogu1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)
推荐博客:模拟退火总结(模拟退火)by FlashHu.模拟退火的原理,差不多就是不断地由现有的值不断地试探,不断地转到更优的值,并在一定概率下转到较差的值. 题目传送门:luogu1337 [JSO ...
- 聊聊 print 的前世今生
本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/NuzfuH_zCZzcrmSFR04NHw (一) 上周,我翻译了一篇 ...
- Elasticsearch 监控指标解析
1.集群监控 集群监控主要包括两个方面的内容,分别是集群健康情况和集群的运行状态. 集群健康状态可以通过以下api获取: http://ip:9200/_cluster/health?pretty 关 ...
- python中几种自动微分库
简单介绍下python的几个自动求导工具,tangent.autograd.sympy: 在各种机器学习.深度学习框架中都包含了自动微分,微分主要有这么四种:手动微分法.数值微分法.符号微分法.自动微 ...
- java之生产者和消费者问题
package testThread; public class Test3 { public static void main(String[] args) { Clerk c = new Cler ...
- 一个经典的代码--Convert char to int in C and C++
前记 写程序,就像建房子,对于高超的建筑师来说,是要有一些好的素材的.作为一个程序员,见了好用的素材存起来,以备后面需要,也是一门很好的修养. 实例代码 一个char 转int的经典代码,这里分享一下 ...