如何制作指向另一个子向量中项目的指针向量
How to make vector of pointers to items in another subvector?
我正在尝试制作一个向量,该向量包含指向字符串向量中的每个第一个字符串的指针。我将把first_words_in_subvecs
传递给binsort
程序来对它们进行排序/打印。我认为制作一个新的实际字符串向量是浪费cpu时间/空间,因为我无论如何都要传递它们。我认为只对我要发送的字符串进行指针操作会更快,这是对的吗?为什么这个代码不起作用?我没有收到任何警告或错误,但当我运行它时,它会出现故障。
int print_sorted_subvectors(vector< vector<string> > &sorted_subsets_vec)
{
vector<string*> first_words_in_subvecs;
for(int i = 0; i < sorted_subsets_vec.size(); i++)
{
first_words_in_subvecs[i] = &sorted_subsets_vec[i][0];
}
}
可能不需要在向量中存储指向字符串的指针。std::string
类非常高效,它使用诸如写时复制之类的技术来避免实际字符串数据的不必要拷贝。如果first_words_in_subvecs
是常规的vector<string>
,您可能不会有效率问题(而且您的代码也会更容易理解和更可靠)。
很难说为什么您当前的代码是分段的。你确定sorted_subsets_vec
的每个子向量都是非空的吗?
相关文章:
- 如何有效地操作满足给定谓词的向量中的所有项目?
- 从加密项目向量中解密任意选择的元素会导致无效的 PKCS #7 块错误
- 如何使用擦除和迭代器来删除二维向量中的项目
- 有没有一种简单的方法可以在C++中获取特定索引之后向量中的所有项目?
- 为什么与<运算符的向量比较会比较每个项目两次?
- 如何将项目放入具有模板化超类类型的向量中
- 有没有更好的方法来检测向量中一个项目的多次出现?
- 总结向量v中的所有项目
- 在包含相同项目的向量中删除一个项目
- 防止向量项目被移动
- 向量中的项目的指针不稳定
- 将矢量中的项目与向量中的所有项目进行比较
- 如何从C 中的对象向量中删除一个项目
- 使用STD ::查找从向量中选择项目
- 将文件读取为由类项目组成的向量
- 检查项目是否已在向量中
- 在给定键 (C++) 的地图向量内查找项目
- 如何在助推向量中查找项目
- 在向量中插入 2 个项目
- 使用 push_back() 在向量中添加项目,向量的大小会增加但无法从向量中读取值