![](/img/trans.png)
[英]How do I get the values of an array to a vector then back to another array?
[英]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>
来存储F
、 M
或文件中的其他内容。 vector
可以动态增长,因此您只需从文件中读取并将push_back()
放入vector
中。 当文件被完全读取后, size()
成员 function 将告诉您从文件中读取了多少条目。
#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';
使用算法 header 的std::count_if
。
count_if( InputIt first, InputIt last, UnaryPredicate p );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.