我知道有功能
string::find_last_of
但是我想处理大量的char *数据。我不想将char *分配给字符串。
我知道有一个std函数
std::find
但是它只能在正序列上找到char *。有这样一种反向查找的方法吗? 如果不在std中,是否有办法提高?
答案 0 :(得分:3)
搜索范围为[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