出於某種原因,我在空(vector)運算符和向量中有什麼不一致。意外的C++向量行爲
if(myvector.empty())cout<<"My Vector is empty\n";
cout<<myvector.front()<<endl;
cout<<myvector[0]<<endl;
print(myvector);
print()
是我的功能,只需要一個矢量輸入和打印矢量。
出於某種原因,我的載體,它不應該是空的對myvector.empty()
空回報,但它返回myvector.front()
和myvector[0]
第一(和預期的)值,打印整個矢量然而時,沒有內容被打印。
任何想法?
請形成[MCVE](http://stackoverflow.com/help/mcve)。如果一個向量是空的,違背它的約定調用'front'或使用'operator []'。 – chris 2015-04-01 00:42:30
違反該合同會導致未定義的行爲,這可能包括諸如載體看起來既爲空又非空的行爲。對未定義的行爲可以獲得的怪異沒有限制。 – MSalters 2015-04-01 09:06:28
我的錢是在「我寫了myvector [0] = 5;並且工作...」 – 2015-04-07 00:18:31