嗨數組排序之前,我在整理前使用此代碼爲我的存儲索引,但是當我在此行中編譯: :保持指標Ç
[&](size_t a, size_t b){ return values[a] < values[b]; }
,對我說的錯誤:
Multiple markers at this line
- expected primary-expression before
'[' token
- expected primary-expression before
']' token
- expected primary-expression before
'a'
- expected primary-expression before
'b'
template <typename T>
std::vector<size_t> ordered(std::vector<T> const& values) {
std::vector<size_t> indices(values.size());
std::iota(indices.begin(), indices.end(), static_cast<size_t>(0));
std::sort(
indices.begin(), indices.end(),
[&](size_t a, size_t b){ return values[a] < values[b]; }
);
return indices;
}
而第二個問題我怎樣才能這個呼叫,當我有經典輸入1D陣列
看來你的編譯器不支持C++ 11(lambda表達式),或者你還沒有通過其相應的開關(如'-std = C++用於GCC的0x或'-std = C++ 11')。 – Angew 2013-02-19 17:39:05