繁体   English   中英

如何在数组中获取某些值?

[英]How do I get certain values inside of an Array?

我正在做一个程序来计算一些东西,例如我需要知道有多少员工是女性,它在我读取的文件上并将其保存在字符串数组中。 Array 上保存的数据是女性的 F,男性的 M。 我如何计算阵列中有多少个 F(Female)? 我已经设置好了所有我需要知道的是如何计算数组中的值,其中的特定值(只是 F)而不是所有值。

这是读取性别的代码(在示例中使用):

File.open("Gender.txt");
    for(int i=0; i<100; i++){
        File >> gender[i];
    }

这是用于存储它们的变量:

string gender[100];

Gender.txt 文件是这样的:

F
F
M
F
M
M
F
F
F
F
M
M
F
M
F
F
M
F
F
M
F

一种方法是使用std::vector<char>来存储FM或文件中的其他内容。 vector可以动态增长,因此您只需从文件中读取并将push_back()放入vector中。 当文件被完全读取后, size()成员 function 将告诉您从文件中读取了多少条目。

  • 添加#include <vector>以访问std::vector
  • 声明std::vector<char> gender; main是为了保持结果。
  • femalemale声明一个计数器,初始化为零。
  • 打开文件。
  • 环形:
     char gen; while(File >> gen) { gender.push_back(gen); // if gen is an F, increase `female` // else if gen is an M, increase `male` }
  • 读取整个文件后,您可以打印统计信息:
     std::cout << "Female: " << female << '\n' << "Male: " << male << '\n' << "Other: " << (gender.size() - female - male) << '\n';

使用算法 header 的std::count_if

count_if( InputIt first, InputIt last, UnaryPredicate p );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM