"#include \n#include \n#include \n\ntemplate\nint Contains(const std::vector& c, const T& t) {\n return (int)std::count(c.begin(), c.end(), t);\n}\n\ntemplate\nint IndexOf(const std::vector& c, const T& v) {\n auto it = std::find(c.begin(), c.end(), v);\n assert(it != c.end());\n return (int)(it - c.begin());\n}\n\ntemplate\nT& Add(std::vector& c, T t) {\n c.push_back(t);\n return c.back();\n}\n\ntemplate\nT Pop(std::vector& c) {\n assert(!c.empty());\n auto val = std::move(c.back());\n c.pop_back();\n return val;\n}\n\ntemplate\nvoid AddUnique(std::vector& c, T t) {\n if (!Contains(c, t))\n c.push_back(t);\n}\n\ntemplate\nvoid Remove(std::vector& c, T t) {\n auto it = std::find(c.begin(), c.end(), t);\n assert(it != c.end());\n c.erase(it);\n assert(!Contains(c, t));\n}\n"\n\n请注意,此代码仅为示例,可能需要根据实际情况进行进一步修改。