C ++ 向量:一个非常简单的指南

我正在研究C ++标准模板库(或STL)的基础知识,以提高解决编程问题的能力。
在这里,我们将从向量开始,看看如何使用其功能。

向量

如果您已经使用其他语言(甚至使用C / C ++)处理过数组,那么您对STL Vector就会有个不错的主意。 它是一个可以存储元素的容器,但是其大小可以动态更改(C / C ++数组的大小不会动态更改)。

让我们从初始化开始。 我们可以存储int,string,float元素,具体取决于我们如何初始化向量。 我们将首先处理整数。

vector<int> v;

你做到了! 很简单!

现在我们可以存储一些随机整数。 魔术方法是“ push_back”。

vector<int> v;
v.push_back(2);
v.push_back(5);
v.push_back(1);
v.push_back(3);
v.push_back(4);

现在我们的向量中存储了5个数字:

如果使用pop_back(),我们将删除最后一个元素。

v.pop_back();

要删除第一个元素,我们可以使用erase()。 我们需要传递要删除的元素位置(迭代器位置)作为参数。

v.erase(v.begin());

我们也可以使用erase删除最后一个元素。

v.erase(v.begin() + v.size() - 1);

你想得到第一个元素?使用front

v.front();

如果想得到最后一个元素,则使用back

v.back();

如果想知道向量中元素的数量? 使用size。

v.size();

而不是使用

v.size() == 0;

使用空方法(参考有趣的原因)。

v.empty();

对于一个简单的数组,我们可以使用[]和=运算符。

v[0] = 10;
v[1] = 20;
v[2] = 30;
cout << v[0] << endl; // 10
cout << v[1] << endl; // 20
cout << v[2] << endl; // 30

从此向量中删除所有元素。

v.clear();

我们可以使用算法的排序对向量元素进行升序排列。

#include <algorithm>
sort(v.begin(), v.end());

并以降序方式,将 greater<int> 比较用作第三个参数。

Compare comp =“比较函数对象,如果第一个参数小于第二个参数,则返回true。

#include <algorithm>
sort(v.begin(), v.end(), greater<int>());

想象一下你不想写

sort(v.begin(), v.end(), greater<int>());

我们可以将此代码放入void函数中,并将向量作为参数传递。 所以现在的问题是:“我们如何将向量作为参数传递?”。 我们有两种方法:

1. 作为参考:

void desc_sort(vector<int> &v) {
  sort(v.begin(), v.end(), greater<int>());
}

desc_sort(v);

2. 作为指针:

void desc_sort(vector<int> *v) {
  sort(v->begin(), v->end(), greater<int>());
}

desc_sort(&v);

原文

本作品采用《CC 协议》,转载必须注明作者和本文链接
从小事做起,大事自然成!
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

强烈建议加一个C/C++社区

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!