将值插入到列表中的矢量中
Insert value into vector in a list
我有一个包含向量的特定列表。 我想向向量添加一个值。我该怎么做?
这是我的代码:
//creating the list with vectors
std::list< vector<string> > adjacencylist;
//adding some vectors to the list...
adjacencylist.push_back(std::vector<std::string>(1, "String"));
adjacencylist.push_back(std::vector<std::string>(1, "String"));
adjacencylist.push_back(std::vector<std::string>(1, "String"));
现在我想向列表中的向量添加值...我试过这个:
std::list< vector<string> >::const_iterator it = adjacencylist.begin();
(*it).push_back("Some more String");
我以为这会起作用。所以我可以遍历所有向量并插入我想要的值。但它不起作用。这里是编译器的输出:
example.cpp: In function ‘int main(int, char**)’:
example.cpp:148:31: error: passing ‘const std::vector<std::basic_string<char> >’ as ‘this’ argument of ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::basic_string<char>; _Alloc = std::allocator<std::basic_string<char> >; std::vector<_Tp, _Alloc>::value_type = std::basic_string<char>]’ discards qualifiers [-fpermissive]
(*it).push_back("test");
因为您已将it
声明为const_iterator
所以您无法编辑it
引用的内容。当您调用push_back
时,您正在尝试编辑it
指向的vector
。您需要替换:
std::list< vector<string> >::const_iterator it = adjacencylist.begin();
(*it).push_back("Some more String");
跟
std::list< vector<string> >::iterator it = adjacencylist.begin();
(*it).push_back("Some more String");
在此处阅读一般constness
,并在此处提供有关const_iterator
的更多具体信息。
只需使用迭代器。您也可以使用 it -> push_back
而不是 (*it).push_back
.
这是一个示例:
for (list< vector<string> > it = adjacencylist.begin(); it != adjacencylist.end(); ++it)
{
it -> push_back("Your std::string");
}
相关文章:
- 使用列表 STL 递归进行插入排序
- 列表 iter 不取消引用 使用列表进行插入排序
- 列表的有效性在插入后开始迭代器
- 如何通过保持第一个插入的位置来对列表中插入的其余元素进行排序?
- 如何从队列插入到 2D 列表
- 将元素插入链接列表
- 无法在我的链接列表中插入项目,head始终为NULL
- 通过动态分配插入列表元素
- 列表插入"Cannot convert argument from Class<T>* to Class<T> &&"
- 双链接列表插入功能C
- 链接列表插入,指针混乱
- 这个无锁数据列表插入是安全的吗
- STL 列表插入要求 3 个参数
- 将字符串列表插入 2D 矢量
- C++列表::插入编译错误
- 为什么我的列表插入函数不生成新节点
- 基于数组的列表-插入函数
- 使用链接列表插入弹出功能
- c++向量和列表插入
- c++列表插入的奇怪行为