我試圖檢查The C++ Classes Tutorial,但是,我無法找到以下答案。考慮一個簡單的實現合併的排序使用迭代器作爲參數:返回矢量的新實例
std::vector<int> mergesort(std::vector<int>::iterator begin, std::vector<int>::iterator end)
{
if (end - begin <= 1)
{
std::vector<int> c(begin, end);
return c;
}
int mid = (end - begin)/2;
std::vector<int> a = mergesort(begin, begin + mid);
std::vector<int> b = mergesort(begin + mid, end);
return merge(a, b);
}
在遞歸,在那裏我寫std::vector<int> c(begin, end)
然後返回向量的基本情況,我想,而不是寫return std::vector<int>::vector(begin, end)
,就是創造並將該向量返回到一行,而不是被迫首先對其進行本地化。
我該如何解決這個問題,因爲我不能直接按建議使用構造函數?
在此先感謝!
完美的,我不知道這是正確的語法。謝謝!注意:時間限制後將被標記爲答覆。 – lassekokholm 2015-02-23 09:49:13