我有一个包含两个字段的 JSON 架构。fieldA和fieldB,fieldA是一个枚举,fieldB是一个字符串。我想根据 fieldA 的值对 fieldB 的长度添加一些验证。
properties:
fieldA:
enum:
- VAL1
- VAL2
- VAL3
fieldB:
type: string
pattern: '^[<a-z>{10}|<a-z>{5}]$'
Run Code Online (Sandbox Code Playgroud)
我想验证如果 fieldA 等于 VAL1,则 fieldB 的长度应为 5,否则 fieldB 的长度应为 10。如何添加此类验证检查?
我的理解是关联容器的迭代器在插入或擦除期间不会失效(除非迭代器指向的节点被擦除).但在下面的程序中,插入似乎使迭代器无效.我的理解错了吗?
typedef std::set<unsigned int> myset_t;
int main(int argc, char **argv)
{
myset_t rs;
myset_t::reverse_iterator rit;
myset_t::reverse_iterator srit;
int ii = 500;
rs.insert(10);
rs.insert(11);
rs.insert(12);
rs.insert(13);
rs.insert(14);
rs.insert(100000);
rs.insert(102000);
rs.insert(103000);
rit = rs.rbegin();
while(rit != rs.rend()) {
srit = rit;
if (*rit < 100000) {
cout << "bailing here " << *rit << endl;
return 0;
}
rit++;
cout << "Before erase " << *rit << endl;
rs.erase(*srit);
cout << "Before insert " << *rit << endl;
rs.insert(ii);
cout << "After …Run Code Online (Sandbox Code Playgroud)