【发布时间】:2022-11-02 05:22:01
【问题描述】:
我有一个字符串向量的向量。我想找到每列中最长字符串的长度。所有的子向量都具有相同的长度并存储了一个元素,因此使用两个 for 循环和反向索引很容易找到它。
vector<vector<string>> myvec = {
{ "a", "aaa", "aa"},
{"bb", "b", "bbbb"},
{"cc", "cc", "ccc"}
};
但是是否可以在不使用索引的情况下使用迭代器来做到这一点?
【问题讨论】:
-
for (const auto& vec : myvec) { for (const auto& str : vec) { } }? -
为什么要使用迭代器?如果内部向量存储列,您可以轻松使用迭代器
-
由于每个子向量在技术上可以是不同的长度,因此不确定迭代器在这种情况下通常如何工作。
-
您绝对可以做的是,为 1d 向量编写一个类,将其作为 2d 向量进行操作。然后编写一个迭代器,它将对col wise或raw wise感兴趣......目前没有其他方法......或者可能是迭代器循环和patellel索引
-
@Borgleader 那将是逐行迭代,而不是逐列迭代。
标签: c++ matrix vector iterator