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 协议》,转载必须注明作者和本文链接
推荐文章: