2013-06-20 80 views
-5

任何人都可以幫我解決帶符號的無符號不匹配嗎?它是關於如果my_size警告C4018:'>':有符號/無符號不匹配

void set::add(SET_ITEM_TYPE newItem) 
    // post: If newItem is not in this set, newItem is added 
    //  and the size of the set increased by +1. 

{ 
    if (positionOf(newItem) == -1) 
    { 

    if(my_size >= my_item.capacity()) 
    { 
    my_capacity = 2 * my_item.capacity(); 
    my_item.resize(my_capacity); 
    } 
    my_item[my_size] = newItem; 

    my_size++; 
    } 
} 
+0

錯誤(實際上很可能只是一個警告)是不言自明。 my_item.capacity()返回一個無符號類型,並將其與一個簽名類型進行比較。 – ApplePie

+0

如果你想知道這裏的問題是什麼,我們需要知道類型是什麼。即什麼是my_size的類型,它們是什麼類型的my_item.capacity。 – Joel

+0

你也想修正你的縮進。事實上,這裏的整體格式非常可怕。 –

回答

3

假設my_size被定義爲int,你可以通過改變它的類型unsigned int解決這個問題。大小不能是負值;爲什麼要簽名?

std::vector::size等的回報無符號類型的一個原因)

+0

謝謝@ Magtheridon96 –