C++ Vector用法深入剖析

SWD下载调试接口原理深度剖析 作为ARM嵌入式工程师,下载调试器都应该知道,但你真正了解SWD如何下载调试的么?ARM 芯片通过什么物理接口和什么方式连接完全取决于芯片Debug子系统的架构如何? 阅读详情

转载地址:http://blog.163.com/chen_dawn/blog/static/112506320109125221959/

C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。

(1)vector< 类型 > 标识符 ;

(2)vector< 类型 > 标识符(最大容量) ;

(3)vector< 类型 > 标识符(最大容量,初始所有值);

(4) int i[4] = {12,3,4,5};

 
  1. vector< 类型 > vi(i , i+2); //得到i索引值为3以后的值 ;  

(5)vector< vector<int> > //vi 定义2维的容器;记得一定要有空格,不然会报错

vector< int > line   

// 在使用的时候一定要首先将vi个行进行初始化;   

for(int i = 0 ; i < 10 ; i ++)  

{  

line.push_back(i);  

}  

/// 个人认为使用vector定义二维数组很好,因为是长度可以不预先确定。很好。 

(6)C++ Vector排序

vector< int > vi ;   

vi.push_back(1);  
vi.push_back(3);  
vi.push_back(0);  
sort(vi.begin() , vi.end()); /// /小到大  
reverse(vi.begin(),vi.end()) /// 从大道小 

(7)顺序访问

vector < int > vi ;   
for( int i = 0 ; i < 10 ; i ++)  
{  
vi.push_back(i);  
}   
for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法  
{  
cout <<vi[i] <<" " ;   
}  
for(vector<int>::iterator it = vi.begin() ; 
it !=vi.end() ; it++) ///第二种调用方法  
{  
cout << *it << " " ;  
} 

(8)寻找

vector < int > vi ;   
for( int i = 0 ; i < 10 ; i ++)  
{  
vi.push_back(i);  
}   
vector < int >::interator it = find(vi.begin() , vi.end,3) ;  
cout << *it << endl ; ///返回容器内找到值的位置。 

(9)使用数组对C++ Vector进行初始化

int i[10] ={1,2,3,4,5,6,7,78,8} ;  
///第一种   
vector<int> vi(i+1,i+3); ///从第2个元素到第三个元素  
for(vector <int>::interator it = vi.begin() ; 
it != vi.end() ; it++)  
{  
cout << *it <<" " ;   
} 

(10) 结构体类型

struct temp  
{  
  public :  
  string str ;   
  public :  
  int id ;  
}tmp;

int main()  
{  
vector <temp> t ;   
temp w1 ;   
w1.str = "Hellowor" ;  
w1.id = 1 ;   
t.push_back(t1);  
cout << w1.str << "," <<w1.id <<endl ;   
return 0 ;   
} 

C++ Vector的基本介绍就为大家介绍到这里。


vector::push_back


public member function
void push_back ( const T& x );

Add element at the end

Adds a new element at the end of the vector, after its current last element. The content of this new element is initialized to a copy of  x .

This effectively increases the vector  size  by one, which causes a reallocation of the internal allocated storage if the vector  size  was equal to the vector  capacity before the call. Reallocations invalidate all previously obtained iterators, references and pointers.

Parameters

x
Value to be copied to the new element.
T is the first template parameter (the type of the elements stored in the vector).


Return value

none

If a reallocation happens, it is performed using  Allocator::allocate() , which may throw exceptions (for the default  allocator ,  bad_alloc  is thrown if the allocation request does not succeed).

Example

// vector::push_back
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector;
  int myint;

  std::cout << "Please enter some integers (enter 0 to end):\n";

  do {
    std::cin >> myint;
    myvector.push_back (myint);
  } while (myint);

  std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n";

  return 0;
}
The example uses  push_back  to add a new element to the vector each time a new integer is read.

Complexity

Constant (amortized time, reallocation may happen).

See also

vector::pop_backDelete last element (public member function)
vector::insertInsert elements (public member function)
013 PID参数整定:Ziegler-Nichols法 几年前在调试一台伺服压机,客户要求位置精度±0.01mm,响应时间小于50ms。我按照教科书上的经验值设了P=1.5,I=0.02,D=0.01,结果电机一启动就开始尖叫,位置超调直接干到0.3mm,然后开始震荡,像极了喝醉的舞者。现场工程师看我的眼神,就像在看一个刚毕业的实习生。那次之后我明白了一个道理:PID参数不是靠猜的,也不是靠经验公式硬套的。你需要一个系统的方法,而Ziegler-Nichols法就是那个让你从“瞎调”走向“有章可循”的起点。 阅读详情

相关推荐

基于ADS\HFSS\Matlab的平面带通发夹滤波器设计

写在最前面,前段时间完成了一个小项目,实现13.5~14GHz的带通滤波器,算是第一个微波项目,在老师、学长、各种大神的指点下,最终完成了指标,想来这段时间收获良多,想到老师教导的,有能力的话要尽可能帮助别人,以及网络上很少面向于小白的教程,于是决定把自己做这个小项目的经过,一些关键步骤,还有软件操作和公式讲解都发出来,供大家指正借鉴。由于我目前大三,刚学习电磁场、微波工程等等,技术实在有限,同时这样是我第一次发帖子,只能尽可能的将自己确认过正确的内容,步骤以及一些经验写出来,供大家借鉴。

likaifeng12138的博客 5219

二维vector不能用直接访问的方式赋值,要pushback进去

对于二维vector可以使用push_back的方法进行赋值,先push_back出一维数组,再将这个一维数组push_back进二维数组。 直接访问的vector[][]方式可以访问数组,不过不能写入数组。不过为什么我不知道(内存是怎么运行的不知)。 不过可以先初始化一个数组(类型都可以),在vector初始化的时候,直接用构造函数将该数组写入vector中,在将一维vector写入二维ve...

catalpeak的博客 1426

手把手实战:RK3588上YOLOv8模型从训练到部署全流程解析

本文详细解析了在RK3588开发板上部署YOLOv8目标检测模型的全流程。从模型训练、正确导出适配的ONNX格式,到使用RKNN-Toolkit2进行模型转换与量化,最后在板卡上完成部署与性能测试。文章提供了完整的代码示例和关键避坑指南,帮助开发者高效实现嵌入式AI应用落地。

weixin_28224217的博客 407

c++中向量vector的基本操作及用法

一、向量vector介绍 vector属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型。可以看成是一个可以装载各种数据类型的动态数组(可以看成加强版数组)。动态数组就是动态分配内存的数组,不想普通的数组声明时就向系统申请固定的空间。 二、vector的声明及初始化 c++中必须要包含#include &lt;vector&gt; #includ...

wjl_zyl_1314的博客 4042

1.毫米波雷达心率、呼吸原理实现(一)实例

毫米波雷达心率、呼吸检测原理本项目分两到三篇文章写完,第一阶段借鉴TI开源项目以及根据自己的见解适当更改信号处理链通过AWR1843汽车雷达传感器和DCA1000采集卡采集数据完成人体呼吸和心跳检测算法的实现。第二阶段将仿真成功的代码搬移TIAWR1843传感器并通过串口数据实现生命体征的实时处理。本文即为第一阶段实现过程。本文首先概述毫米波雷达呼吸心跳检测的原理,紧接着概述本项目信号处理流程,另外本项目第一阶段通过matlab仿真验证算法的有效性,仿真源码可关注小编并私信可取。1.概述。

Poulen的博客 2万+

c++中cin和cin.get()输入 求一维数组元素的动态和 vector用法

23/01/06 首先我感觉用python的序列会很简单,但是我选择用c++,数组的元素由用户输入,然后用for循环累加,限制条件就是i<size(数组)。 但是对于c++里面用户输入不定长度的元素的代码不是很会,看了相关的输入方法,cin.get(),cin,getchar,甚至看到了“EOF”的用法,没看懂(后面会附图),感觉自己要学的还有很多,这条路行不通。 然后看到了模板vector容器,它不就是活生生的动态数组吗,而且他的push_back()可以一直在后面加元素,用while结构,限

foreverfreedom_的博客 711

YOLOv11 改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLOv11中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLOv11,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 1279

c++ vector 用法总结

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include&lt;vector&gt;; 一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector&lt;int&gt; a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类...

cindywry的博客 2万+

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 265

RH850系列芯片深度剖析 1.5-链接(ld)文件解析

基础编译过程分为四个阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。执行这四个阶段的程序(预处理器、编译器、汇编器、和链接器)一起构成了编译系统。CONSTANTS接下来的内存空间定义部分会使用这些常量来定义内存空间的范围,理论上来说不定义常量也没有影响,直接用魔鬼数字代替,定义常量的主要目的就是方便理解以及方便修改;从示例中可以看出,常量的值可以为16进制或者10十进制,而且10进制支持数量级单位(k级,M级);

本博客专注于嵌入式软件领域技术分享。 1430

c 语言vector用法,C++ Vector用法深入剖析

C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。(1)vector< 类型 > 标识符 ;(2)vector< 类型 > 标识符(最大容量) ;(3)vector< 类型 > 标识符(最大容量,初始所有值);(4) int ...

weixin_42378289的博客 1262

点云配准3:3d-ndt算法在pcl上的实现以及参数设置

3d-ndt算法在pcl上的使用方法以及参数设置

诺有缸的高飞鸟的博客 7892

C++ vector用法深入剖析

C++ vecotr

没有梦想,和咸鱼有什么区别! 410

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C++ vector::push_back 用法剖析

 C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。 (1)vector 标识符 ; (2)vector 标识符(最大容量) ; (3)vector 标识符(最大容量,初始所有值); (4) int i[4] = {12,3,4,5};

u010545732的专栏 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: C++虚函数与纯虚函数用法与区别
下一篇: 浅谈C语言中的联合体
Micro_Ryan
博客等级 码龄12年 27粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值