更新
我有一个类对象数组,最多可以容纳 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 不同,因此允许计数器递增。
我怎样才能按照我的意图进行这项工作?