出于某种原因,我在空(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