已更新
我有一个Class Object数组,最多可容纳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设置为该temp并检查所有其他的。我遇到的问题是,假设IP是介于1和5之间的值。如果进入temp的第一个IP是1,则第二个和第三个IP可能是2,然后是2。显然2与2不同,但它与1不同,因此允许计数器递增。
我怎么能按照我想要的方式完成这项工作?