只有在容器具有類似於RDBMS怎麼不會讓你的關鍵屬性的一個元素來聲明 比上表中的一個主鍵多。 示例如下使用矢量(請考慮使用其他任何容器(std
或boost
),可以完成任務 典雅。如何強制執行primay鍵約束類似行爲STL容器的元素
struct Element
{
std::wstring val_;
bool key_;
};
std::vector<Element> v;
Element e1;
e1.val_ = L"Jupiter";
e1.key_ = false;
v.push_back(e1);
Element e2;
e2.val_ = L"Mars";
e2.key_ = true;
v.push_back(e2);
Element e3;
e3.val_ = L"Venus";
e3.key_ = false;
v.push_back(e3);
Element e4;
e4.val_ = L"Venus";
e4.key_ = false;
v.push_back(e4);
關鍵的要求是,例如,如果是由試圖使e3.key_ = true
異常應因爲被拋出 E2(「火星」)已經扮演這個角色
注意,允許重複在該容器中。
這功課嗎? – ildjarn
你知道'std :: map'嗎? – Xeo
@ildjarn。不,這不是一項功課。 – user841550