2014-12-03 35 views
1

如果我在創建矩陣的向量內有向量,如何刪除該矩陣中的特定列。我已經填充了2D矢量現在我需要一個方法在矢量刪除特定列,如何刪除2d向量中的列,C++

例如我的矢量看起來像:

vector<vector<float> > vec; 

只是爲了知識,我知道如何刪除行在載體中,如下:

vec.erase(vec.begin()+row); 

//所以什麼是算法或代碼矢量的矢量來刪除一個特定的列

例如,如果我有

V11, V12, V13 
V21, V22, V23 
V31, V32, V33 

然後我想刪除例如第1列的特定列,這將消除V12,V22,V32和如下縮水:

V11, V13 
V21, V23 
V31, V33 

謝謝你看這個問題。

回答

5

您需要循環遍歷所有行,並刪除每一行中該列中的元素。

int columnIndex = 1; 
std::for_each(vec.begin(), vec.end(), 
    [&](std::vector<float>& row) { 
     row.erase(std::next(row.begin(), columnIndex)); 
    }); 

Live demo

+1

或範圍爲基礎的循環:'用於(自動&行:VEC)row.erase(下一個(row.begin(),columnIndex));' – 2014-12-03 08:50:14