1

我以前有一个vectorof 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),而另一个问题仅与迭代器适配器有关。

4

0 回答 0