0
作爲一些初學C++模板練習的一部分,我試圖編寫一個模板作爲std :: vector在C++中的包裝,並且遇到了一個障礙。處理C++模板中的字符串
說我將使用的變量的類型是int,double和string。
我試圖寫一個循環來填補載體:
type element;
while (element != 0){
std::cout << "Enter an element, use 0 to exit: ";
std::cin >> element;
if(element != 0)
items.push_back(element);
}
的問題是,儘管這適用於INT &雙,它不與的std :: string的工作,作爲字符串不支持!=。我還可以看到自己在制定矢量中最大/最小值時遇到問題。
解決此問題的最佳方法是什麼?
請問您可以通過示例或指向某些代碼的鏈接來說明可選模板參數嗎? – lelouch
例如http://www.cplusplus.com/forum/general/34569/。使用Google搜索「C++可選比較模板參數」等提供了很多鏈接,但有時很難找到權威來源。一些標準庫文檔或教程應該是有幫助的。一般參考可選模板參數https://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fdefault_args_for_templ_params.htm。 –
+1,儘管恕我直言,它更直接和直觀地接受* sentinel *值,並使用正常的'!=':'while(element!= sentinel)'進行比較 - 一個好處是,標記值可以在提示:'...使用「<< sentinel <<」退出:「...' –