我不明白的模板方法中的语法错误
Syntax errors in template method that I don't understand
我为一个学校项目写了一个简短的模板方法,但遇到了我不理解的奇怪语法错误。它们与我声明的模板有关(当注释掉包含模板的标头时,main()中的所有错误都会消失),但我不知道发生了什么。我包括和"intersecthHeader.h",并使用std命名空间。在我的main()函数中,我所做的就是声明一个向量:
向量v1;--错误:C2065"字符串"未声明的标识符,C2065"v1"未声明标识符,C2065"vector"未声明的标识符
这是模板:
template<typename T>
vector<T> intersect(const vector<T> & v1, const vector<T> & v2)
{
vector<T> resultVector;
bool duplicate = false;
for (int i = 0; i < v1.size(); i++)
{
duplicate = false;
for (int j = 0; j < v2.size(); j++)
{
if (v1[i] == v2[j])
{
for (int a = 0; a < resultVector.size(); a++)
{
if (v1[i] == resultVector[a])
{
duplicate = true;
break;
}
}
if (!duplicate)
{
resultVector.push_back(v1[i]);
}
}
}
}
return resultVector;
}
上面给了我这些错误:
C2988无法识别的模板声明/定义,C2143语法错误缺少";"在"<"之前,C2059语法错误"<"。
所有这些都发生在第二行"向量相交"(constvector&v1,常量向量&v2)"
您不应该在任何头文件中执行using namespace std
。您应该将显式std::
名称空间添加到模板实现中,问题应该会消失(假设您已经包含了适当的标准库头)。
相关文章:
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 我该怎么做才能摆脱使用命名空间时的语法错误?
- 如何摆脱错误c2061;语法错误 cout?
- 语法错误:D3DX10Core 中的标识符'TEXTMETRICA'
- 错误 C2146:语法错误:标识符"A1"之前缺少","
- main.cpp(11):错误 C2059:语法错误:"字符串"
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- 如何修复此 FSM C++语法错误 C3867
- 函数错误 C2059:语法错误:'>'不起作用
- 为什么在main()之前断言会导致语法错误"error: expected ')' before numeric constant"?
- c++default-int中的语法错误
- "pip install openexr"上的语法错误:错误的编译器?
- 为什么我收到语法错误:在"*"之前缺少";"
- 错误 C2059:语法错误:从结构成员声明'constant'
- C++语法错误,编译器不会警告或 int v = func(&v) 出错;
- 我正在调试这个C++程序.编译器不再显示语法错误,但存在隐藏的逻辑错误