我想在Bjarne的Stroustrup的(C++)的(翻譯成荷蘭語)書這個例子:爲什麼我得到這個調試斷言失敗?表達:列表迭代器不提領
#include <vector>
#include <list>
#include "complex.h"
complex ac[200];
std::vector<complex> vc;
std::list<complex> l;
template<class In, class Out> void Copy(In from, In too_far, Out to) {
while(from != too_far) {
*to = *from;
++to;
++from;
}
}
void g(std::vector<complex>& vc , std::list<complex>& lc) {
Copy(&ac[0], &ac[200], lc.begin()); // generates debug error
Copy(lc.begin(), lc.end(), vc.begin()); // also generates debug error
}
void f() {
ac[0] = complex(10,20);
g(vc, l);
}
int main() {
f();
}
**編譯和鏈接去成功(0錯誤/警告)* *
但在運行時我得到這個錯誤:
調試斷言失敗!
程序:exe文件路徑
文件:\ Program Files文件\ ms和工作室10.0 \ VC \包括\目錄
線:207
表達:列表迭代器不提領
有關程序如何導致斷言失敗的信息,請參閱關於斷言的Visual C++文檔。 (按重試調試應用程序)
這是該網站的主題,屬於SO。請不要在這裏重新提出這個問題,因爲這可以被遷移。遵循的一條好規則是如果你的問題在你的IDE之前,它就屬於SO。如果它在白板前面,則屬於程序員。 – Walter