0

更新

我有一个类对象数组,最多可以容纳 50 个由此类定义的对象...

class Visitors{
    public:
    string IP;
    string URL;
string dateAccessed;
};

所以我有这个数组,每个值都已经被妥善处理和初始化。但我想计算两个日期之间访问其相应 URL 的唯一 IP 的数量。

int getUniques(Visitors info[], string url, string startDate, string endDate){
    int count = 0;
    string temp;
    for (int i = 0 ; i < N ; i++) {
        if (url == info[i].URL && dateChecker(startDate, endDate, info[i].dateAccessed)) {
            if (temp.empty()) {
                temp = info[i].IP;
                cout << "I'm first temp " << temp << endl;
                cout << "First IP " << info[i].IP << endl;
                count++;
            }
            if (!temp.empty() && temp != info[i].IP) {
                cout << "I'm the rest of temp " << temp << endl;
                cout << "I'm the rest " << info[i].IP << endl;
                count++;
            }
        }
    }
    return count;
}

所以,除了一个问题,我已经解决了所有问题。我无法使用此算法正确检查唯一性。我设置它,所以当我的临时字符串为空时,我将第一个找到的 IP 设置为该临时并检查所有其他 IP。我遇到的问题是,假设 IP 是 1 到 5 之间的值。如果进入 temp 的第一个 IP 是 1,那么第二个和第三个 IP 可能是 2,然后又是 2。显然 2 与 2 没有区别,但它与 1 不同,因此允许计数器递增。

我怎样才能按照我的意图进行这项工作?

4

0 回答 0