首页 > 解决方案 > 使用 for 循环填充向量列表

问题描述

我正在做一个练习,我必须创建一个包含向量名称和向量年龄的 Name_pairs 类,并根据用户的输入填充这些。

我的 main() 如下:

'''

int main() {
    Name_pairs np;
    np.read_names();
    np.read_ages();
    np.print();

        return 0;
}

'''

到目前为止,我的书已经教我为此使用 for 循环,然后按 ctrl+z 退出。这是我到目前为止的代码

'''

void Name_pairs::read_names(){
    std::cout <<"Enter a list of names: ";

    for(std::string nl; std::cin>>nl;)
        name.push_back(nl);
}

'''

然后我会输入我的名字(例如 Bob、Linda、Gene),输入 key,然后按 ctrl+z 来退出循环。我期望发生的是我将返回 main(),然后将调用我的下一个函数 read_ages(),并使用类似的代码

'''

void Name_pairs::read_ages(){
    std::cout<<"Enter a list of ages: ";
    for(double uages; std::cin>>uages;)
        age.push_back(uages);
}

''' 但是,我的程序似乎在 ctrl+z 时终止。我的问题真的是: 1. 这种类型的 for 循环是好的做法吗?还是只是为了让初学者了解其他观点而提出的?2. 为什么我的程序在输入 ctrl+z 后似乎终止了?

编辑:抱歉,下面是我到目前为止的完整程序。

#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Name_pairs{
public:
    void read_names();
    void read_ages();
    void print ()const;
    void sort();


private:
    vector <string> name;
    vector <double> age;
};

int main() {
    Name_pairs np;
    np.read_names();
    np.read_ages();
    np.print();

        return 0;
}

void Name_pairs::read_names(){
    cout <<"Enter a list of names: ";

    for(string nl;cin>>nl;)
        name.push_back(nl);
}

void Name_pairs::read_ages(){
    cout<<"Enter a list of ages: ";
    for(double uages; cin>>uages;)
        age.push_back(uages);
}

void Name_pairs::print()const{
    for(size_t i=0;i<name.size();++i)
        cout<<name[i] << "age, "<<age[i]<<'\n';
}

标签: c++for-loop

解决方案


推荐阅读