2014-10-28 61 views
0
vector <int> col(0); 
vector<vector<int> > row(0); 

for(i=0;i<10;i++) 
col.push_back(some integer); 

row.push_back(col); 
col.clear(); 

有人可以告訴我這裏有什麼問題嗎?在col[]向量中,沒有錯誤,但是當我通過調試行前最後一行去到下一條指令時,row[]的大小從0變爲1,但我看不到它應該從的值col[]矢量?將數據推回到C++中的2D矢量中

編輯:我試圖把調試屏幕的屏幕截圖,但聲譽的事情發生。

+0

你可以剪切和粘貼調試文本? – GWW 2014-10-28 16:16:20

+1

儘管效率低下,但我無法看到您發佈的代碼有任何問題。 – 2014-10-28 16:17:41

+0

@GWW如果你的意思是看屏幕,我不能。 – asker 2014-10-28 16:17:57

回答

0

肯定是有你的代碼沒有問題:

#include <iostream> 
#include <vector> 

using namespace std; 

int main() 
{ 
    vector<int> col(0); 
    vector< vector<int> > row(0); 

    for(int i=0;i<10;i++) 
     col.push_back(i); 

    row.push_back(col); 
    col.clear(); 

    std::cout << "row size is: " << row.size() << std::endl; 
    std::cout << "row 1st elem size is: " << row[0].size() << std::endl; 
    std::cout << "col size is: " << col.size() << std::endl; 

    return 0; 
} 

此輸出:

row size is: 1 
row 1st elem size is: 10 
col size is: 0 

這是完全預料。可能是您的調試器中的錯誤(它可能不會顯示實際的矢量大小)。

+0

感謝您的幫助。我想你是對的。我正在使用DevCpp,現在我使用CodeBocks創建了一個新項目,它的工作原理非常完美。再次感謝。 – asker 2014-10-28 16:23:26

+0

不客氣。請投票並標記爲好答案;-) – jpo38 2014-10-28 16:26:45

+0

@asker流血的Dev-C++是古老的。誰在2014年仍推薦這款Windows 95軟件? – bames53 2014-10-28 16:27:13