如何在用户定义类型的向量上使用vector :: push_back()来仅修改一个对象?

问题描述:

如何使用的push_back()函数上的用户定义类型的一个载体,优选修改一个对象,为了阐明:如何在用户定义类型的向量上使用vector :: push_back()来仅修改一个对象?

class words{ 

public: 

    string noun; 

    string verb; 

    string adj; 

    string adv; 

}; 

和向量​​:

vector <word> v; 

现在让我们假设用户输入一个句子,我把它分成单词,并且出于任何原因,我需要将它整理成类型单词的矢量,而不是类型字符串,我该怎么做呢? 我需要使用push_back(),因为vector现在是空的,我想添加一个新的容器。 我不认为我自己清楚(我们对此深感抱歉,我是新来的),我想单独修改的对象,因此,例如我想设置

v[2].noun = "shark"; 

,但只设置这将要求范围错误,所以我需要别的东西。

+3

那么,你构建一个“单词”,并将其推入'v'? – Quentin

+1

'push_back'的作用是插入新的元素,而不是修改向量的元素。 –

+1

你有什么尝试?这是如何工作,或不工作?请花一些时间[阅读如何提出好问题](http://*.com/help/how-to-ask),并学习如何创建[最小,完整和可验证示例](http:/ /*.com/help/mcve)。 –

你可以做,当你与其他类型做同样的方式....

假设你有构造函数:

words(string noun, string verb, string adj, string adv) : noun(noun), verb(verb), adj(adj), adv(adv) { } 

然后声明矢量 并添加类单词的一些对象...

vector <words> v; 
words w1("Car", "wash", "beautiful", "carefully"); 
v.push_back(w1);