2013-03-31 77 views
0

正如標題所述。例如,你有值的char值[11]的服務,您通過循環參數內部的名單要循環:C++ - 一種更有效的方法來解決循環參數中的列表

while(something not in values[]) 
{ 
    doSomething(omgwtfbbq) 
} 

但是,當然,它不能用C++工作......還是讓我覺得。至少'not'關鍵字不存在。

任何人都可以建議,如果有這樣的溶劑?

+0

從技術上講,'not'不是**關鍵字**,而是**在C++中重新標識的標識符**。但是,這種區別非常微妙。對於不允許直接使用'not'的編譯器,請嘗試包括''頭文件(這樣的編譯器不符合標準,但是:標準C++需要在不使用頭文件的情況下支持'not') –

+0

I包括和試圖使用: while(something not in values []) 但不是沒有定義的高亮。雖然現在已經被認可。 是的,我無法得到它的工作。到目前爲止,我對C++的知識還很有限。 – eltaro

+0

你確定你需要'while(某些不在值[])'而不是'if(某些不在值[])'中? – SomeWittyUsername

回答

0

好的,這個問題已經解決了,但是在評論中回答我的人沒有發佈完整的回覆,所以我會在這裏發佈答案。

將列表更改爲矢量vector<char> values[4]。然後使用Raymond Chen建議的查找功能:

while(find(values.begin(),values.end(),something)==values.end()) 
{ 
    doSomething(eatBananas) 
} 

如果Raymond Chen發佈了明確的答案,我會標記他的。

0

您可以使用@Deepu建議的方式,但更清潔和更健壯的解決方案是使用系統中存在的事件機制。在一個線程中,您需要等待所需鍵按下事件,而在另一個線程上,您將攔截按鍵中斷並分析數據。如果它包含所需的值,則指示需要按下的按鍵事件。

+0

em ...好的。我不完全明白你在這裏說什麼。這聽起來像一個GUI程序將使用的事件驅動。但是控制檯應用程序?根據具體情況,向用戶提供不同數量的可能的「正確」答案。 我的理解是否正確? – eltaro

+0

沒有什麼限制這個GUI應用程序,這是一般的方法 – SomeWittyUsername

+0

然後我懷疑我將能夠實現這在我目前的狀態。我不知道控制檯應用程序中的線程和事件。 – eltaro

相關問題