我嘗試codefights.com,發現某人的答案,其中涉及給予所有最長字符串矢量做到這一點的一個問題:變量聲明++型
std::vector<std::string> r, allLongestStrings(std::vector<std::string> a) {
int b=0;
for (s:a) if (s.size()>b) b=s.size();
for (s:a) if (s.size()==b) r.push_back(s);
return r;
}
他聲明函數的返回類型說明符中的一個變量,誰能告訴我爲什麼這是允許的?我沒有在我的機器上編譯,我找不到這樣做的gcc擴展,在此先感謝:)。
您確定該解決方案有效嗎?正如所寫,這似乎不是有效的C++。 – merlin2011
以任何方式無效的C++。 GCC的某些版本允許使用這種範圍內的形式,但後來由於標準禁止它而被刪除。至於在返回類型中聲明變量...什麼? – DeiDei
我知道,for循環也困惑我,但它在codefights網站上工作,並通過所有測試:S –