C++ vector 排序问题

我已经定义一个二维数组ch[100][20],并读入了一些符号,如asde,sdfwefsdf,refds,rger,现在我想让这个数组排序,按第一个字母从a到z排序,应该怎么写呢?
可以用vector吗? 还是简单的就行。
char ch[100][20];
//调用
showlist();
void showlist()
{?

?}

//下面是修改后的答案,仅供参考。
#include < iostream >
using namespace std;

void showlist(char* arr[], int n)
{
for(int i=0; i<n; i++)
{
int k = i;
for(int j=k+1; j<n; j++)
{
if(*arr[k]>*arr[j])
k = j;
}
char* temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}

for(i = 0; i<n; i++)
cout<<arr[i]<<endl;
}

int main()
{
char* arr[4]={"asde","sdfwefsdf","refds","rger"};

showlist(arr,4);

return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-04
你想使用vector做这种事情,字符串就应该使用string ,而不是char

C++ vector 排序问题
1、initJumper()初始化cVer jumper[NUM],返回vector<cVer> jumperVec 2、showEqu(),显示list<string *> 的list中的字符串,每个元素是<string *> 。3、showList1,正序显示vector<cVer> 4、showList2,逆序显示vector<cVer> 这个程序片段没有实质性的排序内容,理解问题的关键在于STL中迭代器...

C++vector排序问题。
std::sort(spriteVector.begin(), spriteVector.end(), upSort);

c++用sort对vector排序问题
把a[i] 和 b[i] 进行强制类型转化为int 或者直接 通过string 里面重载< include<string> include<algorithm> include <vector> using namespace std;vector<string> a;int n = 7;bool compare(string a, string b){ if(a

c++用sort对vector排序问题
我在我的电脑上编译执行了,程序没有错,所以应该是你的电脑环境有问题。你可以单步调试你的程序,看是哪一行出错了。

c++ vector 排序 sort 用不起来 我用的是code::blocks
1)手动列出所有字符串:vector <string> words("the", "quick", "red", "fox", "jumps", "over", "the", "slow", "red", "turtle");2)利用boost库的split来分割字符串:\/\/ 其他头文件自己加上#include <boost\/algorithm\/string.hpp>using namespace boost;vector <string> words;split...

...对其进行从小到大的排序要求使用vector和sort函数。
std;int main(){ int x;vector<int> a;\/\/定义一个容器 while(cin>>x&&x!='e'){ a.push_back(x);\/\/变量x在容器a尾部入栈 } sort(a.begin(),a.end());\/\/排序 for(int i=0;i<a.size();i++)\/\/输出(a.size():读取容器a的元素个数)cout<<a[i]<<" ";return 0;} ...

C++中map,vector容器的<(小于号)比较算法是否为严格弱序算法?_百度知 ...
首先,两个vector容器之间只有“==”和“!=”两种关系,vector容器内部元素的类型也不一定要重载小于号。不过,如果要对一个vector进行排序的话,那么元素一定要重载小于号,而且是严格弱序。因为sort函数对于A和B来说,如果A<B和B<A同时不成立的话,那么A就等于B。如果在 A != B 时,出现A < ...

c++ sort问题,有vector[2d].x=分数,vector[2d].y=学号,size(vector...
有个简单的方法,使用multimap,用分数作为key,学号作为key对应的值。将vector中的值挨个插入到multimap中(multimap会将插入的元素组,按照key从小到大排序)。计算同一分数共多少人,即multimap::equal_range(分数),再处理返回值。

c++小白求助!用sort对vector排序的问题
从程序逻辑上来看,你的程序是没有问题的。有可能是你输入的数据已经是从小到大排好序了的,尝试着输入无序的数据,看看排序结果。

c++中对于几组字符串的升序或降序排序怎么做???
C++对字符串排序建议用STL下的Vector容器(集合)中的Sort函数排序 创建一个使用string类型的泛型集合vector类对象,在里面把字符串添加进去(使用集合中的Add函数即可),然后可以用vector集合的Sort函数排序(因为集合中的内容全部是字符串,所以不用担心遇到异常)

相似回答
大家正在搜