天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 25|回复: 0

sort an array of strings

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
/***** FUNCTION sortCStringList() *****/
void sortCStringList(CStringList *csListSort, BOOL bUp)
{

CStringList csListTemp;
CString csCompare, csTemp;
POSITION mPMin, mP, mPreP, mPTemp;

while(csListSort->GetCount() > 0) {

if(bUp) {
csCompare =
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
} else {
csCompare = "";
}

mP = csListSort->GetHeadPosition();

while(mP!=NULL) {
mPreP = mP;
csTemp = csListSort->GetNext(mP);
if((bUp && csCompare > csTemp) || (!bUp && csCompare < csTemp))
{
mPMin = mPreP;
csCompare = csTemp;
} /* endif */

} /* while mP */

csListTemp.AddTail(csListSort->GetAt(mPMin));
csListSort->RemoveAt(mPMin);

} /* while GetCount() */

mPTemp = csListTemp.GetHeadPosition();

while(mPTemp != NULL) {
csListSort->AddTail(csListTemp.GetNext(mPTemp));
}

} /* end of function sortCStringList() */












/***** FUNCTION sortCStringList() *****/
void sortCStringList(CStringList *csListSort, BOOL bUp)
{

CStringList csListTemp;
CString csCompare, csTemp;
POSITION mPMin, mP, mPreP, mPTemp;

while(csListSort->GetCount() > 0) {

if(bUp) {
csCompare =
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
} else {
csCompare = "";
}

mP = csListSort->GetHeadPosition();

while(mP!=NULL) {
mPreP = mP;
csTemp = csListSort->GetNext(mP);
if((bUp && csCompare > csTemp) || (!bUp && csCompare < csTemp))
{
mPMin = mPreP;
csCompare = csTemp;
} /* endif */

} /* while mP */

csListTemp.AddTail(csListSort->GetAt(mPMin));
csListSort->RemoveAt(mPMin);

} /* while GetCount() */

mPTemp = csListTemp.GetHeadPosition();

while(mPTemp != NULL) {
csListSort->AddTail(csListTemp.GetNext(mPTemp));
}

} /* end of function sortCStringList() */





> struct LessThan
> {
> bool operator()(const std::string &a, const std::string &b)
> {
> int numA = atoi(a);
> int numB = atoi(b);
> if(numA && numB) return numA < numB;
> return a < b;
> }
> };

You made me read up on std::string :微微一笑:

struct LessThan
{
bool operator()(const std::string &a, const std::string &b)
{
int numA = atoi(a.c_str());
int numB = atoi(b.c_str());
if(numA && numB) return numA < numB;
return stricmp(a.c_str(), b.c_str()) < 0;
}
};




> struct LessThan
> {
> bool operator()(const std::string &a, const std::string &b)
> {
> int numA = atoi(a);
> int numB = atoi(b);
> if(numA && numB) return numA < numB;
> return a < b;
> }
> };

You made me read up on std::string :微微一笑:

struct LessThan
{
bool operator()(const std::string &a, const std::string &b)
{
int numA = atoi(a.c_str());
int numB = atoi(b.c_str());
if(numA && numB) return numA < numB;
return stricmp(a.c_str(), b.c_str()) < 0;
}
};




/***** FUNCTION sortCStringList() *****/
void sortCStringList(CStringList *csListSort, BOOL bUp)
{

CStringList csListTemp;
CString csCompare, csTemp;
POSITION mPMin, mP, mPreP, mPTemp;

while(csListSort->GetCount() > 0) {

if(bUp) {
csCompare =
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
} else {
csCompare = "";
}

mP = csListSort->GetHeadPosition();

while(mP!=NULL) {
mPreP = mP;
csTemp = csListSort->GetNext(mP);
if((bUp && csCompare > csTemp) || (!bUp && csCompare < csTemp))
{
mPMin = mPreP;
csCompare = csTemp;
} /* endif */

} /* while mP */

csListTemp.AddTail(csListSort->GetAt(mPMin));
csListSort->RemoveAt(mPMin);

} /* while GetCount() */

mPTemp = csListTemp.GetHeadPosition();

while(mPTemp != NULL) {
csListSort->AddTail(csListTemp.GetNext(mPTemp));
}

} /* end of function sortCStringList() */


struct LessThan
{
bool operator()(const std::string &a, const std::string &b)
{
int numA = atoi(a);
int numB = atoi(b);
if(numA && numB) return numA < numB;
return a < b;
}
};





static addStringToRB (resbuf **work, const char *strVal)
> {
> resbuf *ptrNewbuf, *ptrPos;
>
> ptrNewbuf = ptrPos = NULL;
> ptrPos = *work;
> *work = ptrPos;
>
> if (*work)
> {
> while (ptrPos->rbnext != NULL)
> ptrPos = ptrPos->rbnext;
> }
>
> if ((ptrNewbuf = acutNewRb(RTSTR)) == NULL)
> {
> acutPrintf("\nERROR: Unable to allocate memory for resbuf pointer.");
> return FALSE;
> }
>
> if ((ptrNewbuf->resval.rstring = strdup(strVal)) == NULL)
> {
> acutPrintf("\nERROR: Unable to duplicate definition in memory.");
> acutRelRb(ptrNewbuf);
> return FALSE;
> }
>
> if (*work)
> {
> ptrPos->rbnext = ptrNewbuf;
> ptrPos = ptrNewbuf;
> }
>
> else *work = ptrPos = ptrNewbuf;
>
> return TRUE;
> }
>
> static int ads_getlayers(void)
> {
>
> resbuf *IsList = NULL;
>
> AcDbLayerTable* pLayerTbl = NULL;
>
>
> acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pLayerTbl,
> AcDb::kForRead);
>
> AcDbLayerTableIterator* pLayerIterator;
> pLayerTbl->newIterator(pLayerIterator);
>
> AcDbLayerTableRecord* pLayerTblRcd;
> char *pLName;
>
> // start iterator - not done
> for(pLayerIterator->start() ; !pLayerIterator->done() ;
> pLayerIterator->step()) {
>
> //for (; !pLayerIterator->done(); pLayerIterator->step()) {
>
> pLayerIterator->getRecord(pLayerTblRcd, AcDb::kForRead);
> pLayerTblRcd->getName(pLName);
> pLayerTblRcd->close();
> //acutPrintf("\nLayer name: %s",pLName);
>
> // adding the layer name into the list
> addStringToRB(&IsList, pLName);
>
> // deallocates the memory pointed to by pLName and sets pLName to NULL
> acutDelString(pLName);
> }
>
> // delete the layer iterator
> delete pLayerIterator;
> // closing the layer table
> pLayerTbl->close();
>
> // if the list is empty [nil] return nil
> if (IsList == NULL) acedRetNil();
> // if not empty return the result-buffer

> and release the memory of the resbuf
> else {
> acedRetList(IsList);
> acutRelRb(IsList);
> }
>
>
> // return the layer list
> return (RSRSLT) ;
> }
>
> Now what I'm supposed to use in order to have the list of layers [strings]
> sorted? I have read about using the following:
>
> //Make a list.
> std::vector<:STRING> mylist;
>
> // then inside of the for...
> mylist.push_back(pLName);
>
> // Sort the list.
> std::sort(mylist.begin(), mylist.end());
>
> But I cannot figure out how to return "mylist" sorted.....
>
> If anyone could help me, please?
>
> Thanks,
> Luis.

Luis,

You're on the right track. Iterate the sorted vector and call your
addStringToRB() from the vector iterator loop instead of the layer table
iterator loop:

std::vector<:STRING>::iterator layer_iter;
for(layer_iter = mylist.begin(); layer_iter != mylist.end(); layer_iter++)
{
addStringToRB(&IsList, layer_iter->c_str());
}



struct LessThan {

bool operator() (const std::string &a, const std::string &b) {return a < b;}

};



// Sort the list.

std::sort(mylist.begin(), mylist.end(), LessThan());

 

 

 

 

sort an array of strings

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=6324][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
sort an array of strings

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
海德斯膜材是一种高性能、多功能的建筑膜材,广泛应用于建筑、桥梁、地铁、隧道等多个领域。以下是对海德斯膜材的详细分析:
[b]一、产品特点[/b]
高性能材料:海德斯膜材主要由聚氨酯、聚酯、聚乙烯等高分子材料制成,同时添加无机颜料、无机助剂、稳定剂等,确保材料的高性能。独特的改性PVDF涂层技术,提高了膜材的自洁性能和焊接性能,使膜材更加耐用且易于加工。
耐候性与耐腐蚀性:具有极佳的耐候性和抗紫外线性能,能够在恶劣环境中保持稳定的性能。耐腐蚀性强,能够抵抗多种化学物质的侵蚀,延长使用寿命。
防火性能:海德斯PVDF膜材在防火安全方面表现出色,符合德国DIN 4102 B1和中国GB8624 B1的防火标准,具有低火焰传播和低烟雾排放的特点。
通过多种技术和材料复合策略(如抗涂层剥离技术、添加阻燃剂等)进一步提升防火效能。
自洁性能:高自洁性表面涂层能够有效减少灰尘和污垢的累积,降低清洁成本。
多功能性:具有防水、隔音、保温、防水汽等多种功能,能够提升建筑物的综合性能。
[b]二、应用领域[/b]
建筑领域:广泛应用于建筑幕墙、遮阳篷、天窗等结构,为建筑提供美观且实用的解决方案。在大型公共建筑(如体育场馆、展览馆等)和商业设施(如购物中心、餐厅等)中得到广泛应用。
桥梁与交通设施:在桥梁隔水保护、地铁水隔绝等方面发挥重要作用,确保结构的安全性和耐久性。
环保与能源:在污水处理、空气净化等领域也有应用,通过其高性能和环保特性为环保事业做出贡献。
[b]三、技术创新与发展[/b]
持续研发:海德斯膜材生产商不断投入研发资源,致力于提升产品的性能和功能。通过技术创新和材料复合策略,不断推出适应市场需求的新产品。
国际化标准:产品遵循德国(欧盟)DIN EN标准和国际ISO 9001质量管理体系,确保生产过程中的高标准和一致性。
[b]四、市场占有率与前景[/b]
市场占有率:在建筑保温行业中,海德斯膜材的市场占有率持续上升,成为行业中的重要品牌之一。随着建筑节能需求的提升和保温技术的不断发展,海德斯膜材的市场前景广阔。
未来发展:海德斯膜材将继续加强产品质量和性能的提升,推动技术创新和产品研发。根据市场需求不断升级服务,以满足更多用户的多样化需求。
综上所述,海德斯膜材以其高性能、多功能和广泛的应用领域在建筑行业中占据重要地位。随着技术的不断进步和市场的不断发展,海德斯膜材的应用前景将更加广阔。

 

 

 

 

sort an array of strings
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-13 03:34 , Processed in 0.164745 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表