我有一个列表L,需要计算它中有多少1.
list<int> L;
L.push_back(14); L.push_back(5); L.push_back(22);
L.push_back(1); L.push_back(1); L.push_back(-7);
Run Code Online (Sandbox Code Playgroud)
我得到的功能是:
assert ( count(...,...,...) == 2);
Run Code Online (Sandbox Code Playgroud)
我需要知道什么会取代它...的.
我试图L.begin(), L.end(), 1替换...它,但它一直给我一个错误说不允许.所以我需要更换...'s而不添加任何额外的代码.
这是我得到的错误:
错误C2782:'iterator_traits <_Iter> :: difference_type std :: count(_InIt,_InIt,const _Ty&)':模板参数'_InIt'不明确
这是确切的代码和错误.
#include <iostream>
#include <vector>
#include <list>
#include <string>
#include <algorithm>
#include <cassert>
using namespace std;
int main()
{
int A1[6] = {15,8,10,9,12,13};
vector<int> V(A1, A1+6);
list<int> L;
L.push_back(14); L.push_back(5); L.push_back(22);
L.push_back(1); L.push_back(1); L.push_back(-7);
count(L.begin(), L.end(), 1);
}
Run Code Online (Sandbox Code Playgroud)
错误C2782:'iterator_traits <_Iter> :: difference_type std :: count(_InIt,_InIt,const _Ty&)':模板参数'_InIt'不明确
c:\ program files\microsoft visual studio 9.0\vc\include\algorithm(160):看到'std :: count'的声明1>
可能是'unsigned int'
它应该std::count(L.begin(), L.end(), 1)如此,如果这不起作用,我可以说是确保你#include <algorithm>.
这段代码在VS2008中为我编译:
#include <list>
#include <algorithm>
#include <cassert>
using namespace std;
int main()
{
list<int> L;
L.push_back(14); L.push_back(5); L.push_back(22);
L.push_back(1); L.push_back(1); L.push_back(-7);
assert( count(L.begin(), L.end(), 1) == 2);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4914 次 |
| 最近记录: |