2013-07-01 86 views

回答

3

迭代器「點」的元素,你想要做的是:

cout << *mid; 

你要「解引用」的迭代器打印它所指向。試圖直接打印給你提到的錯誤。

編輯:這裏有一個小演示:

#include <iostream> 
#include <vector> 

int main(int argc, char* argv[]) 
{ 
    std::vector<int> numbers; 
    numbers.push_back(4); 
    numbers.push_back(3); 
    numbers.push_back(2); 

    auto beg = numbers.begin(); 
    auto mid = numbers.begin() + 1; 
    std::cout << *beg << std::endl; 
    std::cout << (beg < mid) << std::endl;  // True because beg (index 0) points to an element earlier than mid (index 1) 
    std::cout << (*beg < *mid) << std::endl; // False because the element pointed-to by beg (4) is bigger than the one pointed-to by mid (3) 

    return 0; 
} 

Output 第一行顯示4這是第一個元素的值!第二行顯示1(所有非零值均值爲true),最後一行顯示0(零是唯一表示false的值)。

+0

好的,謝謝!但在if語句中使用它時,如果(it Slay

+0

另外,這個程序不應該給我輸出11嗎?它給了我0 – Slay

+0

不,我相信你的載體包含二十零。 – Borgleader

相關問題