1.例题二分搜索:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> text{ 1,2,3,4,5 };
int sought;
cin >> sought;
auto beg = text.begin(),end = text.end();
auto mid = beg + (end - beg) / 2;
while (mid != end && *mid != sought)
{
if (*mid > sought)
{
end = mid;
}
else
beg = mid + 1;
mid = beg + (end - beg) / 2;
}
if (mid == end)
cout << "No result" << endl;
else
cout << *mid << endl;
system("pause");
}
2.练习3.25:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> scores(11, 0);
int grade;
while (cin >> grade)
{
if (grade <= 100)
++*(scores.begin() + grade / 10);
}
for (auto i : scores)
{
cout << i << ends;
}
system("pause");
}
3.练习3.32:(只写了vector的,因为数组的和C一样)
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> a, b;
for (unsigned i = 0; i != 10; i++)
{
a.push_back(i);
}
b = a;
for (auto i : b)
{
cout << i << endl;
}
system("pause");
}
4.练习3.33:
结果:
5.练习3.36
数组:
#include<iostream>
#include<iterator>
using namespace std;
int main()
{
int a[] = { 1,2,3,4,5 };
int b[] = { 1,2,3,4,5,7,8 };
int size_a = end(a) - begin(a);
int size_b = end(b) - begin(b);
if (size_a != size_b)
{
cout << "Not equal" << endl;
system("pause");
}
else
{
for (unsigned i=0;i!=size_a;i++)
{
if (a[i] != b[i])
{
cout << "Not equal" << endl;
system("pause");
}
}
}
cout << "Equal" << endl;
system("pause");
}
vector:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v1(10, 42);
vector<int> v2(10, 42);
if (v1 == v2)
cout << "Equal" << endl;
else
cout << "Not equal" << endl;
system("pause");
}
欢迎交流探讨。
谢谢。