c++ - 数组中不同数量的字符串

标签 c++ arrays count distinct

已修复更新

我只想返回数组中唯一条目的数量。该数组包含一个表示 IP 地址的字符串变量。如果有 10 个,但有 3 种不同的类型,我只想返回 3 个。我已经研究了一整天,似乎找不到有效的解决方案。我的代码:

原始代码

int getUnique(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))){



    }

}

return count;

}

更新代码

int getUnique(Visitors info[], string url, string startDate, string endDate){

set<string> ips;

for(int i = 0 ; i < N ; i++){

    if(url == info[i].URL && (dateChecker(startDate, endDate, info[i].dateAccessed))){

       ips.insert(info[i].IP);

    }

}

return ips.size();

}

第一个 if 检查匹配的 URL 是否确实匹配,而 dateChecker 只是确保特定 IP 访问该 URL 的日期位于 2 个传递的日期之间 ( >开始日期结束日期)。在这种情况下如何获得不同IP的数量?

最佳答案

使用std::set ,它以独特的方式存储项目并且高效:

std::set<string> ips;

for (int i=0; i<N; i++)
  ips.insert(info[i].IP);

int unique_ips = ips.size();

关于c++ - 数组中不同数量的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043703/

相关文章:

c++ - 设置整个数组值的最简单方法是什么?

c++ - 对指针不了解

mysql - 如何计算与 MySQL 中另一列中的特定行关联的唯一值?

sql-server - SQL Server count() over() 与不同

c++ - 程序的密码

C++x0 unique_ptr GCC 4.4.4

javascript - 降低从与前一个相同的数组中获取随机项的概率

arrays - 如何在iter的位置方法中访问索引?

python - 数组 numpy/python 的索引太多

ruby-on-rails - ruby rails : Display Number of Search Results Found