C++:如何将数据插入到结构成员(位于 Vector 中的结构)
c++: how to insert data to a struct member (struct located in vector)
正如你在标题中看到的,我正在研究一个结构向量。
其中一个结构成员是字符串字。当我尝试以这种方式向该成员输入数据时:(*iv).word=temp_str;,我收到运行时错误。
while (is!=str1.end())
{
if (((*is)!='-')&&((*is)!='.')&&((*is)!=',')&&((*is)!=';')&&((*is)!='?')&&((*is)!='!')&&((*is)!=':'))
{
temp_str.push_back(*is);
++is;
}
else
{
(*iv).word=temp_str;
++iv;
str1.erase(is);
temp_str.clear();
}
}
这可能是相关的代码间隔。
应该说 - 单词和temp_str是字符串类型。iv 是向量的迭代器。
在这种情况下,将数据输入结构成员的正确方法是什么?
您的迭代器可能无效,否则将一个字符串分配给另一个字符串应该不是问题。
一个问题是台词:
str1.erase(is);
这将使is
无效,您可能应该将其更改为:
is = str1.erase(is);
iv
指向什么?似乎您需要添加以下内容:
while (is!=str1.end() && iv != something.end())
也。
我猜这是迭代器或为向量分配空间的问题。这是应该有效的
#define N 10
struct myStruct
{
int a;
std::string str;
};
int main()
{
std::vector<myStruct> myVector;
myVector.resize(N);
std::vector<myStruct>::iterator itr;
for (itr = myVector.begin(); itr != myVector.end(); ++itr)
{
std::string tmp = getString();
itr->str = tmp;
}
return 0;
}
相关文章:
- 具有结构成员char数组的sscanf
- 仅使用结构名称访问结构成员
- 使用 structType*& 赋给结构成员
- 使用结构成员指针在C++中填充结构
- 聚合初始化,将成员指针设置为同一结构成员
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- 是否可以将结构数组别名为结构成员数组?
- 结构成员在访问时被清除
- 如何指示结构成员没有锯齿?
- 为什么继承的结构成员在联合中无法访问?
- 尝试在 qml 中访问结构成员的 QList
- C++/CLI -- 访问结构成员
- 调用在类中声明的结构成员
- 对结构成员的临时绑定引用
- 无法使用 strcpy 将字符串复制到静态结构成员
- 为什么类成员数据必须是静态的才能被模板化类的模板化结构成员访问
- 填充模板化结构类型的结构成员
- C/C++intellisense 0.26.1不显示结构成员列表
- 在源文件中创建具有结构成员的结构
- 如何访问结构成员作为指针