使用for循环填充向量列表

时间:2020-04-11 00:55:04

标签: c++ for-loop

我正在做一个练习,其中我必须创建一个由向量​​名称和向量年龄组成的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),输入密钥,然后按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';
}

0 个答案:

没有答案