码迷,mamicode.com
首页 > 其他好文 > 详细

STL vector的使用(二)

时间:2015-08-21 13:45:41      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:stl   vector   sort   

一. 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>());




版权声明:本文为博主原创文章,未经博主允许不得转载。

STL vector的使用(二)

标签:stl   vector   sort   

原文地址:http://blog.csdn.net/u013354805/article/details/47830845

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!