“remove”: 函数不接受 3 个参数?

zhijialiaouestc 2012-11-04 07:49:48
int main()
{
vector<int> a;
a.push_back(1);
a.push_back(6);
a.push_back(6);
a.push_back(3);
vector<int>::iterator now;
now = remove(a.begin(),a.end(),6);
for (int i = 0;i<a.size();i++)
{
cout<<a[i]<<endl;
}
}

编译显示 error C2660: “remove”: 函数不接受 3 个参数
...全文
864 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2012-11-05
  • 打赏
  • 举报
回复
#include "stdafx.h"

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	vector<int> a;
	a.push_back(1);
	a.push_back(6);
	a.push_back(6);
	a.push_back(3);
	vector<int>::iterator now;
	now = remove(a.begin(),a.end(),6);
	for (vector<int>::const_iterator i = a.begin();i != now; ++i)
	{
		cout<<*i<<endl;
	}
}
JoeBlackzqq 2012-11-05
  • 打赏
  • 举报
回复
remove的原型: #include <stdio.h> int remove( const char * filename ); 还是你使用方法错了! 看看这个,是你要的吗? vector::erase iterator erase(iterator it); iterator erase(iterator first, iterator last);
漫步者、 2012-11-04
  • 打赏
  • 举报
回复
引用 楼主 zhijialiaouestc 的回复:
int main() { vector<int> a; a.push_back(1); a.push_back(6); a.push_back(6); a.push_back(3); vector<int>::iterator now; now = remove(a.begin(),a.end(),6); for (int i = 0;i<a.size(……
加了#include <algorithm>头文件吗
jixingzhong 2012-11-04
  • 打赏
  • 举报
回复
在提示报错的时候,会同事提示函数原型,对比一下,可以看出来编译器默认匹配的调用不是你想要的调用。 调试和分析技巧也是必备的技能,多练习,多分析。
JiMoKuangXiangQu 2012-11-04
  • 打赏
  • 举报
回复
加个头文件algorithm. 如果不加,就变成调用remove()文件的函数了,而它只有一个参数.
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


int main()
{
	vector<int> a;
	a.push_back(1);
	a.push_back(6);
	a.push_back(6);
	a.push_back(3);
	vector<int>::iterator now;
	now = remove(a.begin(), a.end(), 6);
	for (int i = 0;i<a.size();i++)
	{
		cout<<a[i]<<endl;
	}
}

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧