如何解决如何在数组中获取某些值?
我正在做一个程序来计算一些东西,例如我需要知道有多少员工是女性,它在我读取的文件中并将其保存在字符串数组中。 Array 上保存的数据是 F 代表女性,M 代表男性。我如何计算阵列中有多少 F(女性)?我已经设置好了所有我需要知道的是如何计算数组中的值、其中的特定值(仅 F)而不是所有值。
这是读取性别的代码(在示例中使用):
File.open("Gender.txt");
for(int i=0; i<100; i++){
File >> gender[i];
}
这是用于存储它们的变量:
string gender[100];
性别.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>
来存储 F
、M
或文件中的其他内容。 vector
可以动态增长,因此您只需从文件中读取并将 push_back()
放入 vector
。当文件被完全读取后,size()
成员函数会告诉您从文件中读取了多少条目。
- 添加
#include <vector>
以访问std::vector
- 在
std::vector<char> gender;
中声明main
以保留结果。 - 为
female
和male
声明一个计数器,初始化为零。 - 打开文件。
- 循环:
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';
使用算法头的std::count_if
。
count_if( InputIt first,InputIt last,UnaryPredicate p );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。