我以前有一个vector
of wstring
。我需要存储每个字符串的行号,所以我将向量重构为vector<pair<wstring, size_t>>
. 如果可能的话,我仍然想vector<wstring>
在某些情况下像 a 一样使用这个向量。这是我的代码:
typedef std::pair<std::wstring, size_t> LineNoPair;
typedef std::vector<LineNoPair> LineNos;
LineNos lines;
// Split lines, but don't split at line continuations
boost::split_regex(lines, // <-- I'd like to use `lines` as the split target
contents,
boost::wregex(L"(((?<![_])\\r\\n)|((?<![_\\r])\\n))"));
for (LineNoPair& line : lines)
{
// remove line continuations from string
boost::replace_all_regex(line.first,
boost::wregex(L"(_?[ ]*\\r?\\n)"),
std::wstring());
}
我可以简单地使用一个字符串向量和一个单独的行号向量,但我希望能够一起迭代这些项目。
所以,一般的问题是:有没有什么东西可以让我使用一个vector
元组,比如一个元组类型的向量?
这个问题与这个问题不同,因为我需要一个与向量兼容的接口(包括swap
),而另一个问题仅与迭代器适配器有关。