/// <summary>
/// 判断pt是否指向区块内存[pbegin,pend)。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="pbegin"></param>
/// <param name="pend"></param>
/// <param name="pt"></param>
/// <returns></returns>
/// 创建时间:2024-10-04 最后一次修改时间:2024-10-04
template<class T>
bool isPointsToTheSameMemoryArea(const T* pbegin, const T* pend, const T* pt)
{
return pt >= pbegin && pt < pend;
}
int main() {
_string s = "567891234";
const wchar_t* p1 = s.c_str() + 5;
const wchar_t* p2 = _t("1234");
_cout << _t("p1=") << p1 << _t("\n");
_cout << _t("p2=") << p2 << _t("\n");
if (isPointsToTheSameMemoryArea(s.begin(), s.end(), p1)) {
_cout << _t("p1与字符串s指向同一块内存区域!\n");
}
else
{
_cout << _t("p1与字符串s指向不同内存区域!\n");
}
if (isPointsToTheSameMemoryArea(s.begin(), s.end(), p2)) {
_cout << _t("p2与字符串s指向同一块内存区域!\n");
}
else
{
_cout << _t("p2与字符串s指向不同内存区域!\n");
}
}