一. vector 迭代器:
除了使用下标来访问vector对象的元素外,标准库还提供了访问元素的方法:使用迭代器。迭代器是一种检查容器内元素并且遍历元素的数据类型。
1. 容器的iterator类型:
vector<int> ::iterator it;
2. begin和end操作
begin | 返回的元素指向第一个元素 |
end | 返回的迭代器指向最后一个元素的下一个 |
vector<int>::iterator iter=v.begin();
举例:将vector中的元素全部赋值为0
for(vector<int>::iterator iter=v.begin();iter!=v.end();iter++) { *iter=0; }
二. vector元素的排序:
less(小于) //升序排列 |
greater(大于) //降序排列 |
equal_to(等于) |
not_equal_to(不相等) |
less_equal(小于等于) |
greater_equal(大于等于) |
1. 函数原型:
template <class RandomAccessIterator> void sort ( RandomAccessIterator first, RandomAccessIterator last ); template <class RandomAccessIterator, class Compare> void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
2. 例子一:
sort(vec.begin(), vec.end(), less<int>());
3. 例子二:
sort(vec.begin(), vec.end());
四. 结构体的排序:
1. 需要重载操作符:
struct AverageErrorResult { std::vector<int> mIndexArray; int mCalcBur0; int mGapPower; int mEngagePower; int mBladeAnglePower; int mAverageErrorRate; bool operator <(const AverageErrorResult& other)const //升序排序 { return mAverageErrorRate < other.mAverageErrorRate; } //或者 bool operator >(const AverageErrorResult& other)const //降序排序 { return mAverageErrorRate > other.mAverageErrorRate; } };
2. 调用:
sort(mAverageErrorRateArray.begin(), mAverageErrorRateArray.end(),less<AverageErrorResult>());
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 21:43:44