vector,對string排序

這是vector中對string類型排序。

用寫比較函數的方法

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
//比較函數,升序排序
bool cmp(const string &x,const string &y)  //&符號不能少
{
  return x>y;
}
int main()
{
freopen("in.txt","r",stdin);
vector<string>vec;
  string s;
  vec.clear();
 int n;
  cin>>n;
  for(int i=0;i<n;i++)
  {
    cin>>s;
    vec.push_back(s);
  }
  sort(vec.begin(),vec.end(),cmp);
 // sort(vec.begin(),vec.end());  若省略第三個參數,默認升序排序
  for(int i=0;i<vec.size();i++)
  {
    cout<<vec[i]<<endl;
  }
  return 0;
}

时间: 2024-10-11 01:28:01

vector,對string排序的相关文章

实战c++中的vector系列--使用sort算法对vector&lt;unique_ptr&lt;string&gt;&gt;进行排序(sort函数出错“应输入 2 个参数,却提供了 3 个)

之前博客写了对vector使用sort算法进行的排序,之前也写到过vector<unique_ptr<string>>的一些处理方法. 今天就写一下对vector<unique_ptr<string>>使用sort算法进行排序. #include<iostream> #include<string> #include<vector> #include<algorithm> #include<memory&

C++STL二维vector指定位置排序

自己一直用vector 二维的存储变量 有时候需要进行排序 在此 为记录一下方法 废话少说直接上代码 #include <QCoreApplication> #include <iostream> using namespace std; #include <vector> #include <string> #include <algorithm> #include <QDateTime> #include <QTimer&g

Effective STL: 将vector和string的数据传给历史遗留的C风格API

如果有一个vector对象v,而你需要得到一个指向v中数据的指针,以使得它可以被当作一个数组,只要使用&v[0]就可以了.对于string对象s,相应的咒语是简单的s.c_str(). void doSomething(const int* pInts, size_t numInts); if (!v.empty()) // 如果v为空,&v[0]试图产生一个指向根本就不存在的东西的指针 { doSomething(&v[0], v.size()); } // 以上从vector上

如何把vector和string数据传给旧的C API

 通常情况下,旧的C API使用数组合char*指针来进行数据交换而不是vector或string对象.这样的API还将存在很长的一段时间,如果我们想有效地使用STL,我们就必须与它们和平共处. 幸运的是,这很容易做到.如果有一个vector v,而需要得到一个指向v中数据的指针,从而可把v中的数据作为数组来对待,那么只需要使用&v[0]就可以了.对于string s,对应的形式是s.c_str().所以,如果我们希望把v传给一个如下所示的C API: void dosomething(co

C++ 实现vector&lt;std:string&gt; 版本

1 #include <iostream> 2 #include <vector> 3 #include <memory> 4 #include <thread> 5 #include <type_traits> 6 #include <typeinfo> 7 #include <sstream> 8 #include <utility> 9 10 11 class StrVec 12 { 13 friend

Effective STL -- vector和string

13.vector和string优先于动态分配的数组 使用vector和string和数组相比,减少了管理内存的工作量. 可以使用begin,end,size等函数 vector和string拥有iterator,value_type等类型定义. 注意事项: string可能使用引用计数,在多线程环境下同步可能会导致性能变差. 14.使用reserve来避免不必要的内存分配 vector超过容量后会导致删除原来容器的对象,进行析构操作,扩大内存后会对原来数据对象复制构造,降低性能. 15.注意s

条目十三《尽量使用vector和string来代替使用数组》

条目十三<尽量使用vector和string来代替使用数组> 数组在现代编程语言中基本都存在,应用可谓广泛,不可或缺,虽然在一些语言中(go)有切片等数据结构,但是数组还是存在的. 但是在有了stl后,在使用数组时更建议用vector和string来代替,因为在动态分配数组的内存时,需要人为的管理内存.比如在new T[]时,需要在用完分配的数组后先手工释放数组存放的对象,然后再释放数组的内存 直接使用数组的不好之处有: 在很多时候,如果程序运行时在动态分配数组内存后产生异常,那么就不会调用析

STL学习:STL库vector、string、set、map用法

常用方法 vector 1.可随机访问,可在尾部插入元素:2.内存自动管理:3.头文件#include <vector> 1.创建vector对象 一维: (1) vector<int>v1; (2) vector<int>v2(10);//10个元素,初始为0 (3) vector<int>v3(10,4);//10个元素,初始为4 (4) vector<int>v4(v3);//拷贝 (5) vector<int>v5=v4;//

条款16: 如何将vector和string的数据传给遗留的API

vector<int> v; string s; 将v,s中的数据传递给下面的函数时: void doSomething(const int* pInts, size_t numInts); void doSomething(const char *pString); --------------------------------------------------------- if (!v.empty()) { doSomething(&v[0], v.size());