将txt文件排序为c++; 嘿,我有一个C++问题。
我正在尝试编写一个程序,该程序将打开并读取包含数字和名称的txt文件,例如: “9约翰3简7汤姆2山姆6汤姆1妮可5汤姆4简8本” 一旦我读了这个文件,我需要把这些名字按照分配给它们的数字顺序放在一个向量中。所以当我打印向量时,它应该是这样的顺序: 妮可 萨姆 简 简 汤姆 汤姆 汤姆 本 约翰 然后,我需要获取排序后的向量,并将名称放入一个新文件中,其中包含每个名称出现的次数。因此,当我打印此新文件时,输出应如下所示: 妮可1 山姆1 简2 汤姆3 本1 约翰1 到目前为止,这是我的代码: (忽略count_names函数,因为我只是用它来测试我的输出) (稍后我将需要执行递归函数,因此忽略目前不需要的任何#include)将txt文件排序为c++; 嘿,我有一个C++问题。,c++,sorting,vector,C++,Sorting,Vector,我正在尝试编写一个程序,该程序将打开并读取包含数字和名称的txt文件,例如: “9约翰3简7汤姆2山姆6汤姆1妮可5汤姆4简8本” 一旦我读了这个文件,我需要把这些名字按照分配给它们的数字顺序放在一个向量中。所以当我打印向量时,它应该是这样的顺序: 妮可 萨姆 简 简 汤姆 汤姆 汤姆 本 约翰 然后,我需要获取排序后的向量,并将名称放入一个新文件中,其中包含每个名称出现的次数。因此,当我打印此新文件时,输出应如下所示: 妮可1 山姆1 简2 汤姆3 本1 约翰1 到目前为止,这是我的代码: (
使用名称空间std;
空洞填充向量(向量和v);
无效打印向量(向量v);
int count_名称(向量v);
int main()
{
向量v;
字符串s;
填充向量(v);
int num_名称;
num_strings=count_strings(v)/2;
cout>s;
}
}
无效打印向量(向量v)
{
对于(int i=0;i cout如果数字是唯一的,则将数字和名称放入a。在进行此操作时,计算每个名称在a中的出现次数。您可以执行一个std::vector
,只需使用std::sort(.begin(),.end()
对成员进行排序。
要创建std::pair
,请使用您的号码和链接的名称调用构造函数
using namespace std;
void fill_vector ( vector<string> &v );
void print_vector ( vector<string> v );
int count_names ( vector<string> v );
int main()
{
vector<string> v;
string s;
fill_vector(v);
int num_names;
num_strings = count_strings(v)/2;
cout << "number of names " << num_names << endl;
print_vector(v);
return 0;
}
void fill_vector ( vector<string> &v )
{
string s;
ifstream fin;
string input = "toy_names.txt";
fin.open ( input.c_str() );
fin >> s;
while ( !fin.eof() )
{
v.push_back ( s );
fin >> s;
}
}
void print_vector ( vector<string> v )
{
for ( int i = 0; i < v.size(); i++ )
cout << v[i] << endl;
}
int count_names ( vector<string> v )
{
int counter = 0;
for ( int i = 0; i < v.size(); i++ )
{
counter++;
}
return counter;
}