如果我是有一个向量v,按标准调用是否正常:
void setData(const uint8_t* p, size_t s) {
v.assign(p, p+s);
}
setData(nullptr, 0);
一般情况下,XXX(InputIterator first, InputIterator last)
时,如上所述调用STL函数distance(first,last) == 0
总是可以的吗?
答案 0 :(得分:1)
是。将nullptr
值复制到另一个指针对象是可以的,这就是所有实现都可能做到的。它已被禁止超过结尾(在此处定义为开始==结束)或取消引用它。
答案 1 :(得分:1)
除了Potatoswatter所说的,C ++还使表达式nullptr + 0
valid。在C中情况并非如此。