C++ primer-练习3.34~3.36

3.34:假定P1和P2指向同一个数组中的元素,则下面程序的功能是什么?什么情况下非法?

P1+=P2-P1;


功能是让p1指向目前所指元素后第p2-p1个元素。只有当p1为常量指针是,才非法。


3.35:编写程序,利用指针将数组中元素置为零。

C++ primer-练习3.34~3.36_第1张图片

3.36:编写程序,比较两个数组是否相等,比较2个vector是否相等。

#include
#include

using namespace std;

int main()
{
	int p = 0,q=0;
	constexpr size_t i = 5;
	int a[i] = { 1,2,3,4,5 }, b[i] = { 1,3,4,5,6 };
	if (sizeof(a) != sizeof(b))
		cout << "arrays are not equal!"< p1{ 1,2,3,4,5 }, p2{1,3,4,5,6};
	if(p1.size()!=p2.size())
		cout<<"vectors are not equal!" << endl;
	else
	{
		vector::iterator ip1 = p1.begin(), ip2 = p2.begin();
		for (decltype(p1.size()) i = 0; i != p1.size(); i++)
		{
			if (*(ip1++) !=* (ip2++))
				q++;
		}
	}
	if (q == 0)
		cout << "vectors are equal!" << endl;
	else
		cout << "vectors are not equal!" << endl;

	return 0;
}


你可能感兴趣的:(C++,primer,C++,primer)