`
xitongyunwei
  • 浏览: 983326 次
文章分类
社区版块
存档分类
最新评论

使STL sort对Log进行排序

 
阅读更多
#include "iostream"
#include "string.h"
#include "iostream"
#include "fstream"
#include <vector>
#include <algorithm>

using namespace std;
typedef struct url_n_time
{
string url;
int times;
bool operator <(const url_n_time& i1)const
{
return times < i1.times;
}
}url_n_time;
/*
bool operator <(const url_n_time& i1, const url_n_time i2)
{
if(i1.times >= i2.times)
{
return true;
}
else
{
return false;
}
}*/
vector<url_n_time> vec_url_n_time(0);

bool url_times_cmp(const url_n_time& url1, const url_n_time& url2)
{
if(url1.times >= url2.times)
{
return true;
}
else
{
return false;
}
}

int main()
{
char ch_array[201];
ifstream in("1.txt");
string str;
string str_last;
vector<string> vec_str(0);
int lineNum=0;
url_n_time url_n_time_temp;
in.getline(ch_array, 200);
str_last = ch_array;
url_n_time last_url_data;
last_url_data.url = str_last;
last_url_data.times = 1;
while(in.getline(ch_array,200))
{
lineNum++;
str = ch_array;
if( !str.compare(str_last) )
{
++last_url_data.times;
}
else
{
vec_url_n_time.push_back(last_url_data);
str_last = str;
last_url_data.url = str_last;
last_url_data.times = 1;
}
}
vec_url_n_time.push_back(last_url_data);
cout << "total urls:" << vec_url_n_time.size() << endl;
/*
sort(vec_url_n_time.begin(), vec_url_n_time.end());
*/
sort(vec_url_n_time.begin(), vec_url_n_time.end(),url_times_cmp);

vector<url_n_time>::iterator it;
for(it=vec_url_n_time.begin(); it!=vec_url_n_time.end(); it++)
{
/*cout << "url:" << it->url.c_str() << "times:" << it->times << endl;*/
cout << it->url.c_str() << " " << it->times << endl;
}
return 0;
}


分享到:
评论

相关推荐

    STL_Sort 排序的资料

    STL中的`sort`函数是C++标准模板库(Standard Template Library)中一个非常重要的排序工具,它位于 `&lt;algorithm&gt;` 头文件内。这个函数提供了一种高效且灵活的方式来对容器内的元素进行排序,比如数组、向量或列表。...

    STL中的排序算法一览

    `sort()` 是STL中最常用的排序函数之一,适用于多种数据结构,包括但不限于`vector`、`deque`等随机访问迭代器支持的数据结构。由于其高效性与灵活性,`sort()` 成为了开发者的首选。 **基本特性** - **算法类型**...

    sort排序 结构体题解

    sort 排序是 STL 库中的一个重要函数,它可以对数组、结构体、容器等进行排序。本文将对 sort 排序的使用、排序原理、cmp 函数的使用和结构体排序进行详细的讲解。 一、sort 函数 sort 函数是 STL 库中的一个排序...

    数据排序和查找——STL

    - **std::sort()**:这是STL中提供的强大排序工具,可以对任何可以比较的元素进行排序。它采用快速排序或者归并排序等高效的排序算法,通常情况下,其时间复杂度为O(n log n)。例如: ```cpp std::vector&lt;int&gt; ...

    STL 中的常用的Vector Map Set Sort用法

    `sort`是STL中的一个通用排序算法,它能对任何可迭代的范围进行排序。`sort`接受三个参数:开始迭代器、结束迭代器以及一个可选的比较函数对象。默认情况下,`sort`使用小于运算符进行排序,但你可以自定义比较函数...

    Sort_Algorithm_排序算法_C++_c++algorithmsort_

    同时,合理使用C++的STL(标准模板库)如`&lt;algorithm&gt;`中的`sort()`函数,可以简化排序操作,提高代码效率。 总的来说,掌握排序算法是成为一名优秀程序员的基础。通过学习和实践C++中的冒泡排序、快速排序和直接...

    STL应用——第一天课程sort.pptx

    在这个STL应用的课程中,主要讲解了如何使用STL中的`sort`算法对数据进行排序。 1. **SORT 介绍** `sort`函数是C++ STL中的一个成员,它属于`&lt;algorithm&gt;`头文件。它的主要作用是对给定区间内的所有元素进行排序。...

    N种求排序方法——STL,选择,冒泡,快速,合并,插入,堆,计数等

    1. **STL排序**:C++标准模板库(STL)中的`std::sort`函数是基于introsort算法,它结合了快速排序、插入排序和堆排序的优点。对于小规模数据,它使用插入排序;对于中等规模数据,它采用快速排序;当递归深度达到...

    c++STL学习——排序算法技术总结和用法代码实例(二)

    `std::partial_sort`可以对容器的前k个元素进行排序,而其余元素的顺序不确定。`std::nth_element`则将指定索引处的元素调整到其应处的位置,使得该位置左边的元素都小于它,右边的元素都大于它,但不保证其余元素的...

    c++STL学习——排序算法技术总结和用法代码实例(一)

    `std::stable_sort`保证了相等元素的相对顺序,而`std::partial_sort`则用于部分排序,仅对前k个元素进行排序。`std::nth_element`则找到序列中第n个最小元素,并不完全排序整个序列。 2. **`std::sort`** `std::...

    STl中的排序算法详细解析

    3. `partial_sort`:这个函数用于部分排序,即只对区间的一部分元素进行排序,使其前k个元素按顺序排列。它通常使用堆排序算法,时间复杂度为O(n log k)。这对于处理大数据集时需要优先处理部分关键数据的情况非常...

    详细解说STL 详细解说STL 详细解说STL 详细解说STL 详细解说STL

    1. **sort()**:对容器中的元素进行排序,如示例2_2.cpp和example2_3.cpp中所示。 2. **find()**:在容器中查找特定元素。 3. **copy()**:将一个范围内的元素复制到另一个位置。 4. **unique()**:去除容器中...

    STL容器 内容全,讲解详细 包括Vector、Deque、sort、set、map等

    4. **sort**:sort是STL中的一个排序算法,它可以对任何可以比较的元素序列进行排序。它使用了高效的快速排序或归并排序策略,根据输入的大小自动调整。sort函数的通用性和高性能使得它在处理大量数据时非常有用。 ...

    18个STL程序带你逐步了解STL

    - 应用`std::sort`算法对容器中的元素进行排序,如对一组数值从小到大排序。 - 使用`std::find`寻找特定元素,如在数组中查找特定值的索引。 7. **学习路径**: 从简单的容器如vector开始,理解其内存管理和操作...

    stl源码剖析 stl源码剖析

    例如,`std::sort`函数可以对容器内的元素进行排序,`std::find`则可以查找特定元素的位置。 4. 函数对象:函数对象,又称仿函数,是一种封装了函数调用的对象。它可以用来自定义算法的行为,如比较操作、转换操作...

    快速排序、堆排序、归并排序、希尔排序实现

    在Sort.Try这个项目中,开发者可能包含了这四种排序算法的C++实现代码,通过学习和分析这些代码,可以加深对排序算法的理解,并有助于实际开发中选择合适的排序算法。在阅读和理解源码时,注意观察每种排序算法如何...

    sort函数应用

    sort 函数是 C++ 标准模板库 (STL) 中的一个重要函数,用于对数组或容器中的元素进行排序。排序是计算机科学中的一种基本操作,在实际应用中有着广泛的应用。 sort 函数的用法简介 -------------------- sort ...

    STL.rar_hash stl_stl 封装_搜索树

    STL中包含了一系列的排序算法,如`std::sort`,它使用了一种高效的称为“快速排序”的内部实现,能够在平均情况下达到O(n log n)的时间复杂度。此外,还有`std::stable_sort`(稳定排序)、`std::partial_sort`...

    STL各种使用方法实例

    - **sort()**: 对容器内的元素进行排序。 - **find()**: 在容器内查找特定元素,返回第一个匹配项的迭代器。 - **swap()**: 交换两个容器或容器内的元素。 - **copy()**: 将一个容器的部分或全部元素复制到另一个...

    VC 实现排序操作

    首先,排序是指对一组数据进行排列,使其按照特定规则(如升序或降序)形成有序序列。在VC++中,我们可以使用内置函数、STL(Standard Template Library)或自定义算法来完成这一任务。 1. **内置函数**:对于简单...

Global site tag (gtag.js) - Google Analytics