如果我有一些3D容器,它可以是任何包含類型的組合。 我必須編寫一個通用函數,它接收此容器作爲參數,並且必須返回與3D容器的元素類型相同的2D容器(矩陣)。如何找出我的3D容器的元素是什麼類型?
對於expample,在3D容器中所接納:
std::vector<std::deque<std::deque<int>>> 3D;
返回類型:
std::deque<std::deque<int>>
我怎樣才能做到這一點,並返回類型的通用和依賴具有多維容器上已收到? 可以說我有一個通用函數接收一個3D容器,並且必須返回3D容器包含的相同類型。例如:我的功能是這樣的:
template<typename 3D>
auto Function(3D Knt)-> decltype(0+Knt[0]){
// randome code
decltype(0+Knt[0]) K;
// randome code
return K;
}
這會導致任何錯誤嗎?
標準容器爲此目的聲明一個成員'value_type'類型。 – VTT
我很困惑:你似乎知道'decltype',所以你應該能夠工作如何獲得類型。 – Rakete1111
Yess,我知道它,但我不知道如何定位元素或3D容器元素的元素。我試過這樣:auto函數(kontainer 3D) - > decltype(0 + 3D [0]){} 但它似乎並不工作 – Nane