Vector 例题

例题一:

下面这个代码输出的是( )

#include <iostream>

#include <vector>

using namespace std;

int main(void)

{

vector<int>array;

array.push_back(100);

array.push_back(300);

array.push_back(300);

array.push_back(300);

array.push_back(300);

array.push_back(500);

vector<int>::iterator itor;

for(itor=array.begin();itor!=array.end();itor++)

{

        if(* itor==300)

        {

                itor=array.erase(itor);

        }

}

for(itor=array.begin();itor!=array.end();itor++)

{

        cout<<*itor<<" ";

}

        return 0;

}

例题二

std::vector::iterator 没有重载下面哪个运算符( )

        A.==

        B.++

        C.*

        D.>>

例题三

T是一个数据类型,在vs系列编译器中,debug模式下,关于std::vector::at 和 std::vector::operator[] 描述正确的是( )

        A.at总是做边界检查, operator[] 不做边界检查.

        B.at 不做边界检查, operator[] 做边界检查.

        C.at和operator[] 都是会做边界检查的

        D.以上都不对

例题四

下面程序的输出结果是

int main()

{

int ar[] = {1,2,3,4,5,6,7,8,9,10};

int n = sizeof(ar) / sizeof(int);

vector<int> v(ar, ar+n); //开了多大?

cout<<v.size()<<":"<<v.capacity()<<endl;

v.reserve(100);

v.resize(20);

cout<<v.size()<<":"<<v.capacity()<<endl;

v.reserve(50);

v.resize(5);

cout<<v.size()<<":"<<v.capacity()<<endl;

}

1. 

分析:程序首先把100 300 300 300 300 500进行尾插

  for(itor=array.begin();itor!=array.end();itor++)

{

        if(* itor==300) //向量的数据为300时进行删除

{

//删除之后迭代器进行返回赋值,不会导致迭代器失效,删除当前数据,

//后面的数据相当于会向前移动,此时itor还是指向下一个300数据,

//但是由于循环回去,for循环末尾itor++会让迭代器指向下一个

      //数据,因此会错失一次300的比较判断

        itor=array.erase(itor);

}

}

所以答案为: 100 300 300 500 C答案

2. 

分析:vector底层是以当前类型的指针作为迭代器,对于指针而言,能够进行操作的方法都支持,如==,++,*,而>>运算符并没有重载

故答案为D

3. 

注意题目专门强调了vs系列编译器,debug模式下

at() 和 operator[] 都是根据下标获取任意位置元素的,在debug模式下两者都会去做边界检查。

当发生越界行为时,at 是抛异常,operator[] 内部的assert会触发

故选择C

4. 

分析:vector<int> v(ar, ar+n);

        cout<<v.size()<<":"<<v.capacity()<<endl; //大小为数组元素个数,因此size=10 capacity=10

v.reserve(100); //预留空间100

v.resize(20);  //调整元素为20个,此时元素的size会改变,由于个数小于容量,因此容量不会变小

cout<<v.size()<<":"<<v.capacity()<<endl;// 故size=20 capacity=100

v.reserve(50);//期望预留空间为50,可是现在的空间已经有100个,所以空间不会减小

v.resize(5); //元素个数调整为5,g++与vs都会缩size,而capacity g++缩,VS不缩

cout<<v.size()<<":"<<v.capacity()<<endl;// 故size=5 capacity=100

所以答案为:C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html做一个雷达图的软件

要实现一个在线输入数据并生成雷达图的功能&#xff0c;可以使用HTML表单和JavaScript来处理用户输入的数据。以下是一个示例代码&#xff0c;演示了如何实现这个功能&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"…

U盘文件夹损坏0字节:现象解析、恢复方法与预防措施

在日常工作和生活中&#xff0c;U盘因其便携性和大容量成为我们存储和传输数据的重要工具。然而&#xff0c;当U盘中的文件夹突然损坏并显示为0字节时&#xff0c;我们可能会感到困惑和焦虑。本文将对U盘文件夹损坏0字节的现象进行详细描述&#xff0c;分析其可能的原因&#x…

PyTorch+CNN进行猫狗识别项目

任务介绍 数据结构为&#xff1a; big_data ├── train │ └── cat │ └── XXX.jpg&#xff08;每个文件夹含若干张图像&#xff09; │ └── dog │ └── XXX.jpg&#xff08;每个文件夹含若干张图像&#xff09; ├─…

【面试题分享】重现 string.h 库常用的函数

文章目录 【面试题分享】重现 string.h 库常用的函数一、字符串复制1. strcpy&#xff08;复制字符串直到遇到 null 终止符&#xff09;2. strncpy&#xff08;复制固定长度的字符串&#xff09; 二、字符串连接1. strcat&#xff08;将一个字符串连接到另一个字符串的末尾&…

Java中setLineWrap(true)和setWrapStyleWord(true)优化TextArea

在 Java Swing 开发中&#xff0c;JTextArea 是一个多行的文本区域组件&#xff0c;常用于显示和编辑大量文本。当处理长文本时&#xff0c;默认行为是不换行并且出现水平滚动条&#xff0c;这通常会降低用户体验。幸运的是&#xff0c;JTextArea 提供了两个非常有用的方法&…

为何你的App安装转化率不高?试试Xinstall的页面唤起功能吧!

在当今互联网快速发展的时代&#xff0c;App已经成为我们生活中不可或缺的一部分。然而&#xff0c;随着市场竞争的加剧&#xff0c;App推广和运营面临着诸多挑战。其中&#xff0c;安装页面唤起不顺畅、用户体验不佳等问题&#xff0c;成为了许多开发者和运营者头疼的难题。为…

C++【继承】

继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层次结构&#xff0c;体现…

网上预约就医取号系统

摘 要 近年来&#xff0c;随着信息技术的发展和普及&#xff0c;我国医疗信息产业快速发展&#xff0c;各大医院陆续推出自己的信息系统来实现医疗服务的现代化转型。不可否认&#xff0c;对一些大型三级医院来说&#xff0c;其信息服务质量还是广泛被大众所认可的。这就更需要…

u盘在电脑上读不出来?这些方法或许能帮到你!

U盘作为一种便捷的存储设备&#xff0c;广泛应用于数据传输和备份。然而&#xff0c;在使用过程中&#xff0c;用户可能会遇到U盘在电脑上读不出来的问题。这种情况可能由多种原因引起&#xff0c;包括硬件故障、驱动问题、文件系统损坏等。本文将详细介绍解决u盘在电脑上读不出…

小红书点赞评论收藏【更新版本】

小红书作为社交媒体的一个亮点&#xff0c;其点赞、评论和收藏的功能形成了一种特有的交流机制。点赞简直就是一枚迷你奖章&#xff0c;为创作者带去信心与动力。一次点赞&#xff0c;表达的是你心中无言的喜好和认可&#xff1b;它如明亮的灯塔&#xff0c;在汪洋大海中为创作…

人工智能对决:ChatGLM与ChatGPT,探索发展历程

图: a robot is writing code on a horse, By 禅与计算机程序设计艺术 目录 ChatGLM:

项目实践---Windows11中安装Zookeeper3.5.5/Hadoop2.7.2/Hive2.3.7

1.背景 项目第一版本使用大数据组件核心版本均为2.x&#xff0c;需要在个人电脑搭建相关大数据环境&#xff0c;这次提供Hadoop2.7.2 Hive2.3.7版本的环境搭建。 2.相关安装包下载 链接&#xff1a;https://pan.baidu.com/s/1tkYr1UpqMKKVJHY5cfvVSw?pwddcxd 提取码&…

摊牌了,我不装了~各种Amazon Bedrock小样儿、试用装,今天免费!

探索世界顶级的大模型、智能体、文生图、对话机器人……新手&#xff1f;还是专家&#xff1f;加入我们&#xff0c;解锁精彩内容&#xff1a; l 初体验&#xff1a;在 Amazon Bedrock Playground 直接调用强大的大模型&#xff0c;点亮生成式AI技能树。 l 文生图&#xff1a…

Pyqt QCustomPlot 简介、安装与实用代码示例(二)

目录 前言实用代码示例彩色图演示散点像素图演示实时数据演示多轴演示对数轴演示 结语 所有文章除特别声明外&#xff0c;均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nixgnauhcuy’s blog&#xff01; 如需转载&#xff0c;请标明出处&#xff01; 完整代码我已经上传到…

【C++进阶学习】第三弹——菱形继承和虚拟继承——菱形继承的二义性和数据冗余问题

继承&#xff08;上&#xff09;&#xff1a;【C进阶学习】第一弹——继承&#xff08;上&#xff09;——探索代码复用的乐趣-CSDN博客 继承&#xff08;下&#xff09;&#xff1a;【C进阶学习】第二弹——继承&#xff08;下&#xff09;——挖掘继承深处的奥秘-CSDN博客 …

教育培训系统(FastAdmin+ThinkPHP+Unipp)

引领学习新风尚 &#x1f4da; 引言&#xff1a;教育新篇章 随着科技的不断发展&#xff0c;教育形式也在不断创新与变革。教育培训系统作为这一变革的重要载体&#xff0c;正逐渐改变着我们的学习方式。今天&#xff0c;就让我们一起探索教育培训系统的魅力&#xff0c;看看它…

雷池社区版自动SSL

正常安装雷池&#xff0c;并配置站点&#xff0c;暂时不配置ssl 不使用雷池自带的证书申请。 安装&#xff08;acme.sh&#xff09;&#xff0c;使用域名验证方式生成证书 先安装git yum install git 或者 apt-get install git 安装完成后使用 git clone https://gitee.com/n…

【代码仓库提交大文件,用Git LFS!】

开始前 Git LFS&#xff1a;请注意&#xff0c;你的远程仓库需要支持Git LFS。GitHub、GitLab和Bitbucket都支持Git LFS&#xff0c;但可能需要额外的配置或开启特定的支持选项。 介绍 Git LFS (Large File Storage) 是一个 Git 扩展&#xff0c;用于处理和存储大文件。通常…

DVWA 靶场 Authorisation Bypass 通关解析

前言 DVWA代表Damn Vulnerable Web Application&#xff0c;是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序&#xff0c;旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…

在寻找电子名片在线制作免费生成?5个软件帮助你快速制作电子名片

在寻找电子名片在线制作免费生成&#xff1f;5个软件帮助你快速制作电子名片 当你需要快速制作电子名片时&#xff0c;有几款免费在线工具可以帮助你实现这个目标。这些工具提供了丰富的设计模板和元素&#xff0c;让你可以轻松地创建个性化、专业水平的电子名片。 1.一键logo…