gpt4 book ai didi

c++ - 期望一个标识符 C++

转载 作者:行者123 更新时间:2023-11-28 07:33:53 24 4
gpt4 key购买 nike

我正在尝试编写一个类,我终于让它可以编译,但 visual studio 仍然显示有错误(带有红线)。

问题出在(我在visual studio画红线的地方写了@problem here@):

1. const priority_queue<int,vector<int>,greater<int> @>@ * CM::getHeavyHitters() {
2. return & @heavyHitters@ ;
3. }

它说:

  1. “错误:需要一个标识符”(在第一行)
  2. “错误:标识符“heavyHitters”未定义”(在第二行)

第一个问题我完全不懂。第二个我不明白,因为 heavyHitters 是 CM 的成员,我包括了 CM。

顺便说一句,我尝试构建。它没有解决问题。

谢谢!!!

完整代码在这里:


Count-Min Sketch.cpp

#include "Count-Min Sketch.h"


CM::CM(double eps, double del) {

}

void CM::update(int i, int long unsigned c) {

}

int long unsigned CM::point(int i) {
int min = count[0][calcHash(0,i)];

return min;
}

const priority_queue<int,vector<int>,greater<int>>* CM::getHeavyHitters() {
return &heavyHitters;
}

CM::CM(const CM &) {

}

CM::~CM() {

}


int CM::calcHash(int hashNum, int inpt) {
int a = hashFunc[hashNum][0];
int b = hashFunc[hashNum][1];
return ((a*inpt+b) %p) %w;
}

bool CM::isPrime(int a) {
bool boo = true;

return boo;
}

int CM::gePrime(int n) {
int ge = 2;

return ge;
}

Count-Min Sketch.h

#pragma once

#ifndef _CM_H
#define _CM_H

using namespace std;
#include <queue>

class CM {
private:
// d = ceiling(log(3,1/del)), w = ceiling(3/eps)
int d,w,p;
// [d][w]
int long unsigned *(*count);
// [d][2]
int *(hashFunc[2]);
// initialized to 0. norm = sum(ci)
int long unsigned norm;
// Min heap
priority_queue<int,vector<int>,greater<int>> heavyHitters;

// ((ax+b)mod p)mod w
int calcHash(int hashNum, int inpt);
// Is a a prime number
bool isPrime(int a);
// Find a prime >= n
int gePrime(int n);

public:
// Constructor
CM(double eps, double del);
// count[j,hj(i)]+=c for 0<=j<d, norm+=c, heap update & check
void update(int i, int long unsigned c);
// Point query ai = minjcount[j,hj(i)]
int long unsigned point(int i);
const priority_queue<int,vector<int>,greater<int>>* getHeavyHitters();
// Copy constructor
CM(const CM &);
// Destructor
~CM();
};

#endif // _CM_H

最佳答案

>>> 是单个标记,即右移(或提取)运算符。某些编译器无法在嵌套模板特化中正确识别它。你必须像这样在两个尖括号之间放置一个空格:

Type<specType<nestedSpecType> > ident;
^^^

关于c++ - 期望一个标识符 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com