2010-11-28 43 views

回答

4

一個簡單的解決方案是實現operator[]所以「剝落」只有第一維:

#include <cstdlib> 

class MyClass 
{ 
    std::vector<std::vector<int> > foo; 

public: 

    // grant write access 
    std::vector<int>& operator[](size_t index) 
    { 
     return foo[index]; 
    } 

    // grant read access 
    const std::vector<int>& operator[](size_t index) const 
    { 
     return foo[index]; 
    } 
}; 

你需要,因爲const correctnesstwo overloads。 (如果您只想授予讀取權限,而不是寫入權限,當然不需要非const版本。)

+0

+1好答案和const正確性。 – SingleNegationElimination 2010-11-28 22:23:43

2

您可以重載operator[]來執行此操作。您可能需要查看this faq以獲取有關使用operator()的建議。