Fil*_*efp 27
如果你想,它可以处理的函数指针都和STL迭代器看看std::equal在<algorithm>.
我认为std::equal是C++的做法std::memcmp(它确实仍然是C++,但std::memcmp不处理迭代器对象).
#include <iostream>
#include <vector>
#include <algorithm>
int
main (int argc, char *argv[])
{
int a1[] = {1,2,3,4};
int a2[] = {1,9,3,5};
int * p1 = new int[4];
std::vector<int> vec (a2, a2+4);
*(p1++) = 1; *(p1++) = 2;
*(p1++) = 3; *(p1++) = 4;
p1 -= 4;
if (std::equal (a1, a1+4, p1)) {
std::cout << "memory of p1 == memory of a1\n";
}
if (std::equal (vec.begin (), vec.end (), p1) == false) {
std::cout << "memory of p1 != memory of vec\n";
}
}
Run Code Online (Sandbox Code Playgroud)
产量
memory of p1 == memory of a1
memory of p1 != memory of vec
Run Code Online (Sandbox Code Playgroud)
Naw*_*waz 13
您也可以memcmp在C++中使用.它在C++中也是原生的.
您需要做的就是,包括<cstring>然后使用完全限定的名称std::memcmp而不是memcmp.这是因为它在std命名空间中,就像所有其他标准库函数和类一样.
| 归档时间: |
|
| 查看次数: |
7360 次 |
| 最近记录: |