C++能不能自定义字符串的大小,并且不按ASCII码对其进行排序?
来源:百度知道 编辑:UC知道 时间:2024/07/05 08:12:40
C++能不能将string str[]={……}这种行式的,{}里面的字符串自定义大小,并且按自定义的大小对其进行排序?
请给出代码,谢谢
string str[]={"ag","vg","bh","ji","ks","pw"}
请给出代码,谢谢
string str[]={"ag","vg","bh","ji","ks","pw"}
不能
用链表 字符串 动态申请内存
代码:
typedef struct St_1
{
char *cData;
St_1 *pNext;
}
使用时候 HeapAlloc 大小为sizeof(St_1)+X //X为你希望第一的大小
cData指向X内存
然后用pNext把整个数据都链起来!!! 排序就不用说了吧
OK 搞定
请使用下面的代码:
要按自定义的大小排序,只需修改CompareStr()
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef vector<string> StringVector;
bool CompareStr( const string s1, const string s2 )
{
if( s1 > s2 ) return true;
else return false;
}
void main()
{
int n = 6;
int i;
StringVector sv;
string str[]={"ag","vg","bh","ji","ks","pw"};
for( i=0; i<n; i++ )
sv.push_back( str[i] );
sort( sv.begin(), sv.end(), CompareStr );
// output to see we are rig