在std中是否有类似find_last_of的函数,而在字符串中没有吗?

时间:2018-10-31 03:43:40

标签: c++ std

我知道有功能

string::find_last_of

但是我想处理大量的char *数据。我不想将char *分配给字符串。

我知道有一个std函数

std::find

但是它只能在正序列上找到char *。有这样一种反向查找的方法吗?  如果不在std中,是否有办法提高?

3 个答案:

答案 0 :(得分:3)

std::find_end()

  

搜索范围为[first,last)的元素[s_first,s_last)的最后一个子序列。

例如

#include <algorithm>

char *data = ...;
char *data_end = data + size;
char toFind = ...;
char *pfind = &toFind;

char *found = std::find_end(data, data_end, pfind, pfind + 1);
if (found != data_end)
    ...

答案 1 :(得分:2)

如果要搜索一个字符,例如std::find(),则可以使用... std::find()。看看std::reverse_iterator

auto foo(char* str, std::size_t size, char to_find)
{
    auto rev_it = std::find(std::make_reverse_iterator(str + size),
                            std::make_reverse_iterator(str),
                            to_find);
    auto it = std::make_reverse_iterator(rev_it);

}

答案 2 :(得分:1)

boost中有一个函数可以解决此问题。

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script>
<main>
<p><label>Columns:<label> <input type="number" v-model="cols"></p>
<div class="container">
  <div class="col" v-for="column in columns">
    <div class="item-container" v-for="item in column">{{item}}</div>
  </div>
</div>
</main>

示例:

boost::algorithm::find_last
相关问题