c++ - 使用从源字符串中提取的子字符串选择性地填充 vector

标签 c++ vector char

我有一个 char 数组,其内容如下所示:

char buffer[] = "I1 I2 V1 V2 I3 V3 I4 DO V4";

正如您所见,这是一个典型的空白分隔字符串。我想将以字母“I”开头的所有子字符串放入 vector (IVector)中,并按升序对其元素进行排序。同时,我还想将以字母“V”开头的所有子字符串放入另一个 vector (VVector)中,并按升序对其元素进行排序。其他的(例如本例中的“DO”)将被忽略。

我对STL算法库不熟悉。有什么功能可以帮助我完成上述工作吗?

谢谢!

最佳答案

您可以使用 std::istream_iterator<std::string> 迭代所有子字符串。 :

std::stringstream s(buffer);
std::istream_iterator<std::string> begin(s);
std::istream_iterator<std::string> end;
for( ; begin != end; ++begin) {
    switch((*begin)[0]) { // switch on first character 
        // insert into appropriate vector here
    }
}

然后你可以使用std::sort对 vector 进行排序,正如@Billy 已经指出的那样。您还可以考虑使用 std::set ,因为这将始终使您的项目保持在第一位。

关于c++ - 使用从源字符串中提取的子字符串选择性地填充 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6546284/

相关文章:

c++ - 为什么这种理论上跨平台的代码不会改变 Windows 上的环境变量?

c - 如何将指针指向的 textf 的内容复制到 char 数组(即指针 -> char 数组)

c++ - C 标准 : Character set and string encoding specification

css - Openlayers Feature.Vector 只使用默认样式

c++ - 如何使用 chrono 确定运行时间

c++ - 使用 malloc、char 数组和指针

c++ - n 个列表的交集

c++ - 高分辨率显示器导致MFC中View文字模糊

c++ - C++ 中图像序列的全局运动估计

c++ - 使用 vector 查找平衡指数的程序失败