gpt4 book ai didi

c++ - 带有从源字符串中提取的子字符串的选择性填充 vector

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:48 25 4
gpt4 key购买 nike

我有一个字符数组,其中的内容如下所示:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com