我想在C++中做一些非常簡單的事情,但我找不到方法。 我想創建一個像for循環的函數,我將理想地輸入一個變量來進行迭代應該發生的時間,並且我的函數將在括號內執行一些函數。我希望我很清楚。謝謝...如何在C++中創建for循環像命令?
例
superFor (1)
{
//commands to be executed here
add(1+2);
}
我想在C++中做一些非常簡單的事情,但我找不到方法。 我想創建一個像for循環的函數,我將理想地輸入一個變量來進行迭代應該發生的時間,並且我的函數將在括號內執行一些函數。我希望我很清楚。謝謝...如何在C++中創建for循環像命令?
例
superFor (1)
{
//commands to be executed here
add(1+2);
}
你想要什麼是不可能在C++中,因爲語言(的當前版本)沒有在此處需要的一些功能:即「動態」創建功能塊
的。最好你可以做的就是將一個函數指針或函數對象傳遞給你的函數,STL提供了很多這樣的例子:考慮:
void out(int x) {
cout << x << ' ';
}
vector<int> xs;
xs.push_back(42);
xs.push_back(23);
for_each(xs.begin(), xs.end(), out);
這將函數out
的指針傳遞給函數for_each
。
void DoSomethingRepeatedly(int numTimesTo Loop)
{
for(int i=0; i<numTimesToLoop; i++)
{
//do whatever;
}
}
是什麼呢?這不能太..簡單..我一定是誤解你的問題:( 當然,你必須檢查,numTimesToLoop的值是> = 0.
編輯:我做了一個方法, 。萬一
#define superFor(n) for(int i = 0; i < (n); i++)
編輯:小心不要在循環中使用另一個名爲i的變量。
也許會BOOST_FOREACH做你想要什麼:
http://engineering.meta-comm.com/resources/cs-win32_metacomm/doc/html/foreach.html
你可以使用宏。
#define superFor(v,i) for(int v=0; v<(i); v++)
,並使用它像這樣:
superFor(i,10) {
printf("Doing something ten times");
}
這很瘋狂,但它可能只是工作...
在C++中,你可以使用常規的for-loop。
for(variable; condition; increment) {
//stuff goes here
}
在你的for循環中: 變量是一個像i這樣的計數變量。你可以在這裏定義變量並初始化它。你經常看到類似「int i = 0」的東西
條件是某種測試。在你的情況下,你想檢查你的計數變量是否少於你想循環執行的次數。你會把「我< how_many_times_to_loop」
增量是增加計數變量的命令。在你的情況,你想「我++」,這是說的手短方式「I = I + 1」
所以這給了我們:
for(int i = 0; i < how_many_times_to_loop; i++) {
//stuff goes here
}
這是一個非常奇怪的要求,爲什麼不寫一對循環?我會說一個宏,但我想明白你爲什麼想要這麼做。 – 2008-10-17 14:46:01
聞起來像功課...你能告訴我們你到目前爲止嘗試過什麼嗎? – freespace 2008-10-17 14:47:36