c vector用法是什么

在c 中,vector是一个十分有用的容器,c vector用法是:

1、基本操作

(1)头文件#include.

(2)创建vector对象,vector vec;

(3)尾部插入数字:vec.push_back(a);

(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

(5)使用迭代器访问元素.

vector::iterator it;

for(it=vec.begin();it!=vec.end();it )

    cout<<*it<<endl;

(6)插入元素:

vec.insert(vec.begin() i,a);

在第i 1个元素前面插入a;

(7)删除元素:

vec.erase(vec.begin() 2);

删除第3个元素

vec.erase(vec.begin() i,vec.end() j);

删除区间[i,j-1];区间从0开始

(8)向量大小: vec.size();

(9)清空: vec.clear();

2、vector的元素不仅仅可以使int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。下面是一段简短的程序代码:

#include

#include

#include

#include

using namespace std;

typedef struct rect

{

    int id;

    int length;

    int width;

  //对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。

  bool operator< (const rect &a)  const

    {

        if(id!=a.id)

            return id<a.id;

        else

        {

            if(length!=a.length)

                return length<a.length;

            else

                return width<a.width;

        }

    }

}Rect;

int main()

{

    vector vec;

    Rect rect;

    rect.id=1;

    rect.length=2;

    rect.width=3;

    vec.push_back(rect);

    vector::iterator it=vec.begin();

    cout<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<
return 0;

}

3、算法

(1)、使用reverse将元素翻转:需要头文件#include

reverse(vec.begin(),vec.end());

将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.)

(2)、使用sort排序:需要头文件#include,

sort(vec.begin(),vec.end());

(默认是按升序排列,即从小到大).

可以通过重写排序比较函数按照降序比较,如下:

定义排序比较函数:

bool Comp(const int &a,const int &b)

{

    return a>b;

}

调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。


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

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

相关文章

c语言for循环如何打印菱形

c语言for循环打印菱形的方法&#xff1a;使用两个for循环&#xff0c;实现条件判断&#xff0c;代码为【int i,j;for(i0; i<2*n-1; i )_(in-i-1&&jc语言for循环打印菱形的方法&#xff1a;方法一&#xff08;以循环为主打印&#xff09;#include void print(int n) …

quasar 异步回调_Java IO基准测试:Quasar与异步ForkJoinPool与ManagedBlock

quasar 异步回调“ Arien看到了我们运行的parallelStreams和ForkJoin基准测试的结果后&#xff0c;在Twitter上与我们联系。 这激起了他的兴趣&#xff0c;因此他进行了一些自己的测试&#xff0c;将Quasar纤维加入了混合物。 这是他的结果和结论。” –塔基皮&#xff08;Taki…

php微信自动回复机器人,微信自动回复机器人功能怎么实现?

原标题&#xff1a;微信自动回复机器人功能怎么实现&#xff1f;微信自动回复机器人功能怎么实现&#xff1f;最近有不少小伙伴都在询问这个问题。很多人在微信营销的过程中&#xff0c;都会有这样的问题&#xff0c;微信好友太多&#xff0c;想要都在第一时间回复&#xff0c;…

C语言怎么合并两个有序链表

C语言合并两个有序链表的方法&#xff1a;拼接指定的两个有序链表的所有节点即可。例如两个有序链表分别为【1->2->4】和【1->3->4】&#xff0c;合并后的有序链表为【1->1->2->3->4->4】。具体方法&#xff1a;将两个有序链表合并为一个新的有序链…

jira集成开发代码_7种JIRA集成可优化您的Java开发流程

jira集成开发代码有哪些最佳集成可以用来优化JIRA工作流程&#xff1f; 我喜欢寻找在工作流程中提高效率的方法。 看着那些小小的自动化和流畅的流程&#xff0c;我的脸上露出了微笑。 我知道我并不孤单&#xff0c;有时花费更多的时间来获得一点点提升以使其正常工作&#xff…

c语言源程序结构是怎样的?

一个C语言源程序至少一个有main函数&#xff0c;定义函数必须指定 4 个元素&#xff1a;返回类型、函数名、圆括号内的形参表&#xff08;可能为空&#xff09;和函数体。源程序的结构特点&#xff1a;1、一个C语言源程序可以由一个或多个源文件组成。2、每个源文件可由一个或多…

c语言规定在一个源程序中main函数的位置是什么?

一个c程序有且仅有一个main函数&#xff0c;除main函数之外可以有若干个其它的函数&#xff0c;每个函数实现某一特定的操作。C语言规定&#xff0c;在一个源程序中&#xff0c;main函数的位置可以任意。因为&#xff1a;在一个C语言源程序中&#xff0c;程序总是从main函数开始…

jax-ws和jax-rs_使用JAX-RS和Jetty创建Web服务和Rest Server

jax-ws和jax-rs用Java创建WebService非常容易。 将其添加到ServletContainer并将其部署到嵌入式WebServer仅需要几行代码。 让我们创建一个具有两个函数的简单计算器&#xff0c;作为WebService的示例。 计算器将计算任意数量的squareRoot和平方。 它将返回一个简单的JSON响应…

可运行的c语言程序的扩展名为什么?

C语言源程序经过C语言编译程序编译之后&#xff0c;生成一个后缀为“.OBJ”的二进制文件(称为目标文件)&#xff0c;最后还要由称为“连接程序”(link)的软件&#xff0c;把此“.OBJ”文件与c语言提供的各种库函数连接在一起&#xff0c;生成一个后缀“.EXE”的可执行文件。显然…

activemq消息持久化_将ActiveMQ持久消息传递性能提高25倍

activemq消息持久化Apache ActiveMQ&#xff0c;JBoss A-MQ和Red Hat Apache ActiveMQ是一个非常受欢迎的开源消息传递代理&#xff0c;由创建&#xff08;和从事&#xff09; Apache Karaf &#xff0c; Apache Camel &#xff0c; Apache ServiceMix以及许多其他工具的人提供…

c语言实现两个有序链表的合并(代码示例)

c语言实现两个有序链表的合并&#xff1a;现有两个有序单链表&#xff0c;通过代码实现将两个单链表合并为一个有序的新表&#xff0c;要求使用旧表的空间&#xff0c;不能新分配内存#include #include typedef struct List{ int a; struct List *next;}list;void newLis…

hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作

hibernate工厂模式显式乐观锁定 在上一篇文章中 &#xff0c;我介绍了Java持久性锁定的基本概念。 隐式锁定机制可防止丢失更新 &#xff0c;它适用于我们可以主动修改的实体。 尽管隐式乐观锁定是一种广泛使用的技术&#xff0c;但很少有人了解显式乐观锁定模式的内部工作原理…

using用法是什么?

using用法是&#xff1a;1、命名空间using namespace 命名空间;//这样每次使用命名空间中的变量时就不用指定命名空间了注意&#xff1a;头文件中不应有using命名空间的声明2、类型别名&#xff08;C 11&#xff09;using aa double;//等价于typedef double aatypedef double …

学习C ,常见的误解

学习C 你是否会有以下几点误解&#xff1f;1. “要理解C &#xff0c;你必须先学习C”2. “C 是一门面向对象的语言”3. “为了软件可靠性&#xff0c;你需要垃圾回收”4. “为了效率&#xff0c;你必须编写底层代码”5. “C 只适用于大型、复杂的程序”如果你中*了&#xff0c…

openshift使用_OpenShift DIY:使用Gradle构建Spring Boot / Undertow应用程序

openshift使用由于此错误&#xff0c; Gradle 1.6是在OpenShift上运行的最后一个受支持的Gradle版本。 但是从Gradle 2.2开始&#xff0c;这不再是问题&#xff0c;因此&#xff0c;使用自己动手做墨盒&#xff0c;在OpenShift上运行最新的Gradle不再是问题。 DIY盒带是一种实验…

php管理智能dns,负载均衡之DNS轮询

域名注册商都支持对统一主机添加多条A记录&#xff0c;这就是DNS轮询&#xff0c;DNS服务器将解析请求按照A记录的顺序&#xff0c;随机分配到不同的IP上&#xff0c;这样就完成了简单的负载均衡。下图的例子是&#xff1a;有3台联通服务器、3台电信服务器&#xff0c;要实现“…

php怎么把时间戳转成日期格式,php怎么把时间格式转换为时间戳?,时间戳转为日期...

php怎么把时间格式转换为时间戳&#xff1f;PHP怎么把时间格式转换成时间戳&#xff1f;&#xff0c;php时间格式转换为时间戳的方法&#xff1a;1。使用mktime()将时间转换为时间戳&#xff0c;语法为“mktime(小时、分钟、秒、月、日、年)”&#xff1b;2.使用strtime()将字符…

C语言的标识符由什么组成

C语言的标识符由字母、数字、下划线组成&#xff0c;并且第一个字符必须是字母或下划线&#xff0c;不能是数字。在标识符中&#xff0c;字母的大小写是有区别的&#xff0c;例如BOOK与book是两个不同的标识符。定义变量时&#xff0c;我们使用了诸如 a、abc、mn123 这样的名字…

jdk8读取文件_JDK 7和JDK 8中大行读取速度较慢的原因

jdk8读取文件我早些时候发布了博客文章Reading Large Lines Slower in JDK 7和JDK 8&#xff0c;并且在描述该问题的文章上有一些有用的评论 。 这篇文章提供了更多解释&#xff0c;说明为何该文章中演示的文件读取&#xff08;并由Ant的LineContainsRegExp使用 &#xff09;在…

C 11 实现的 100行 线程池

C 线程池一直都是各位程序员们造轮子的首选项目之一。今天&#xff0c;小编带大家一起来看看这个轻量的线程池&#xff0c;本线程池是header-only的&#xff0c;并且整个文件只有100行&#xff0c;其中C 的高级用法有很多&#xff0c;很值得我们学习&#xff0c;一起来看看吧。…