java编程思想总结10--泛型与 C++ 比较 (2)

   泛型程序设计,标准容器,标准算法

            C++的模板为 泛型设计奠定了基石,是所用版本STL基石。

            STL组件之间的关系

           java编程思想总结10--泛型与 C++ 比较 (2)_第1张图片

      

              C++标准库中,使用了std命名空间

容器:

顺序容器

向量容器是可以实现其他所有容器,使用时要包含头文件,注意向量第一个元素的索引为0,支持索引直接访问,

DEMO:

#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include "vector"

using namespace System;
using namespace std;
//向量容器举例
int main(array ^args)
{   
vector  A(10);
int n;
int primecount = 0 ,i ,j ;
cout << "Enter a value >= 2 as upper limit for prime numbers : " ;
cin >> n;


A[primecount++] = 2;
for (i = 3; i < n; i++){   
if (primecount == A.size())
A.resize(primecount + 10);

if (i % 2 == 0)
continue;

j = 3;
while (j <= i / 2 && i%j != 0)
j += 2;

if (j > i / 2)
A[primecount++] = i;
}

for (i = 0; i < primecount; i++)
{
cout << setw(5) << A[i];
if ((i + 1) % 10 == 0)
cout << endl;
}
cout << endl;
    return 0;
}

双端队列容器是 一种放松了访问权限的队列。

DEMO:

#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include"deque"
#include"algorithm"

using namespace std;
int main(array ^args)
{
deque values;

values.push_front(2.2);//在开头插入元素
values.push_front(3.5);
        values.push_back(1.1);//结尾插入元素
        

        cout << "values contains: ";

for (int i = 0; i < values.size(); ++i)
cout << values[i] << ' ';

values.pop_front();
cout << endl<<"After pop_front values contains: ";

for (int i = 0; i < values.size(); ++i)
cout << values[i] << ' ';

cout << endl;

system("PAUSE");

return 0;
}

//  ///////   /////////////////////  

列表容器:

DEMO:

#include "stdafx.h"
#include "iostream"
#include"list"
using namespace std;


int main(array ^args)
{
cout << "请输入十个需要的整数:  ";
list Link;
int i, key, item;


for (i=0; i < 10; i++){
cin >> item;
Link.push_front(item);
}


cout << "List:   ";
list ::iterator p = Link.begin();
while (p!=Link.end())
{
cout << *p << " ";
p++;
}
cout << endl;
cout << "请输入一个需要删除的整数:  ";
cin >> key;
Link.remove(key);
cout << "List: ";
p = Link.begin();
while (p != Link.end())
{
cout << *p << " ";
p++;
}
cout << endl;
system("PAUSE");
return 0;
}



你可能感兴趣的:(Thinking,in,Java)