如何在用户定义类型的向量上使用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";
,但只设置这将要求范围错误,所以我需要别的东西。
答
你可以做,当你与其他类型做同样的方式....
假设你有构造函数:
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);
那么,你构建一个“单词”,并将其推入'v'? – Quentin
'push_back'的作用是插入新的元素,而不是修改向量的元素。 –
你有什么尝试?这是如何工作,或不工作?请花一些时间[阅读如何提出好问题](http://stackoverflow.com/help/how-to-ask),并学习如何创建[最小,完整和可验证示例](http:/ /stackoverflow.com/help/mcve)。 –