1
在將C映射imap轉換爲char * array []和C中的整數數組方面,有更好的性能方法嗎?將C++映射轉換爲C數組 - 性能
map<string, int> imap; // Code below will build the imap
....
....
....
char** carr;
int* iarr;
*carr = (char**)malloc(sizeof(char*)*imap.size());
*iarr = (int*)malloc(sizeof(int)*imap.size());
index = -1;
for(iter = imap.begin(); iter != imap.end(); ++iter)
{
(*carr)[++index] = strdup(iter->first.c_str());
(*iarr)[index] = iter->second;
}
-Kartlee
您正在解除引用太多。作業應該是carr [++ index] =「...」和iarr [index] =「...」。而且,大多數人在使用後開始使用零和增量索引。 malloc行的左值也是錯誤的。 – wildplasser
你假設你可以很容易地構建出比圖書館作者寫得更好的東西。我們爲什麼要相信? –