簡體   English   中英

Eclipse CDT的范圍是

[英]Eclipse CDT ranged for

我正在嘗試為C ++ Primer中的練習寫一個答案。 這是我的代碼:

int main()
{
vector<int> v1;
vector<int> v2(10);
vector<int> v3(10, 42);
vector<int> v4{10};
vector<int> v5{10, 42};
vector<string> v6{10};
vector<string> v7{10, "hi"};

for(auto i : v2)
    cout << v2[i] << " " <<;

return 0;
}

問題是我在for循環中收到一個通用的“語法錯誤”。 我嘗試了將i聲明為int並聲明&i所有組合,但是沒有運氣。 這本書做了類似的for循環,如下所示:

vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9};
for (auto &i : v)
    i *= i;
for (auto i : v)
    cout << i << " ";
cout << endl;

我在做什么不同?

您誤解了循環的工作原理。 我不是指數。 我包含向量當前元素的副本。 你試一試:

for(auto i : v2)
    cout << i << " " <<;

如果要修改向量的內容,則應通過引用獲取元素:

for(auto& i : v2)
{
    ++i;
    cout << i << " " <<;
}   

編輯:您正在使用什么編譯器? 如果是mingw,則必須使用-std = c ++ 11啟用c ++ 11功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM