相关疑难解决方法(0)

stl::带原始指针的迭代器

我想对 C++ 数组使用迭代器,但也要使用原始指针。我可以使用静态向量:

#define SIZE 10
int vect[SIZE] = {0};
vect[3] = 5;
int* p = std::find(std::begin(vect), std::end(vect), 5);
bool success = p != std::end(vect);
Run Code Online (Sandbox Code Playgroud)

如何使用原始指针(可能是堆分配的向量)来做到这一点?当然编译器不知道数据的大小,所以这段代码

int* pStart = vect;
std::find(std::begin(pStart), std::end(pStart), 5);
Run Code Online (Sandbox Code Playgroud)

error C2784: '_Ty *std::begin(_Ty (&)[_Size])' : 
could not deduce template argument for '_Ty (&)[_Size]' from 'int *'
Run Code Online (Sandbox Code Playgroud)

是否有可能做出begin()end()意识到它?

c++ pointers stl

3
推荐指数
2
解决办法
4924
查看次数

标签 统计

c++ ×1

pointers ×1

stl ×1