1 程序示例:vector
#include
#include
using namespace std;
template
voID PrintVector(T s,T e)
{
for(;s!=e;++s)
cout << *s << " ";
cout << endl;
}
int main()
{
int a[5] = {1,2,3,4,5};
vector
cout << "1) " << v.end() - v.begin() << endl;
//两个随机迭代器可以相减,输出 1) 5
cout << "2) ";
PrintVector(v.begin(),v.end());
//2) 1 2 3 4 5
v.insert(v.begin()+2,13); //在v.begin()+2 (v[2])位置插入13
cout << "3) ";
PrintVector(v.begin(),v.end());
//3) 1 2 13 3 4 5
v.erase(v.begin()+2); //删除位于 v.begin()+2 (v[2])的元素
cout << "4) ";
PrintVector(v.begin(),v.end());
//4) 1 2 3 4 5
vector
v2.insert(v2.begin(),v.begin()+1,v.begin()+3);
//将 v 的一段插入 v2 开头
cout << "5) v2: ";
PrintVector(v2.begin(),v2.end());
//5) v2: 2 3 100 100 100 100
v.erase(v.begin()+1,v.begin()+3); //删除 v 上的一个区间,即 2 ,3
cout << "6) ";
PrintVector(v.begin(),v.end());
//6) 1 4 5
system("pause");
return 0;
}
2 用 vector 实现二维数组
#include
#include
using namespace std;
int main()
{
vector
//v 有3个元素,每个元素都是 vector
for(int i=0;i for(int j=0;j<4;j++) v[i].push_back(j); for(int i=0;i { for(int j=0;j cout << v[i][j] << " "; cout << endl; } system("pause"); return 0; } 3 deque 所有使用于 vector 的 *** 作都使用于 deque。 deque 还有 push_front (将元素插入到前面)和 pop_front (删除最前面的元素) *** 作,复杂度是 O(1)。 4 List 容器 在任何位置插入删除都是常数时间,不支持随机存取。 除了具有所有顺序容器都有的成员函数之外,还支持8个成员函数: push_front:在前面插入 pop_front:删除前面的元素 sort:排序(List 不支持 STL 的算法 sort) remove:删除和指定值相等的所有元素 unique:删除所有和前一个元素相同的元素(要做到元素不重复,则 unique 之前还需要 sort) merge:合并两个链表,并清空被合并的那个 reverse:颠倒链表 splice:在指定位置前面插入另一个链表中的一个或多个元素,并在另一链表中删除被插入的元素。 #include #include #include using namespace std; class A { private: int n; public: A(int n_) { n = n_; } frIEnd bool operator <(const A & a1,const A & a2); frIEnd bool operator ==(const A & a1,const A & a2); frIEnd ostream & operator <<(ostream & o,const A & a ); }; bool operator< (const A & a1,const A & a2) { return a1.n < a2.n; } bool operator ==(const A & a1,const A & a2) { return a1.n == a2.n; } ostream & operator <<(ostream & o,const A & a ) { o << a.n; return o; } template voID PrintList(const List { typename List i = lst.begin(); for(i=lst.begin();i!=lst.end();i++) cout << *i << ","; cout << endl; }//typename 用来说明 List int main() { List@H_404_253@ lst1,lst2; lst1.push_back(1); lst1.push_back(2); lst1.push_back(3); lst1.push_back(4); lst1.push_back(2); lst2.push_back(10); lst2.push_front(20); lst2.push_back(30); lst2.push_back(30); lst2.push_back(30); lst2.push_front(40); lst2.push_back(40); cout << "1) "; PrintList(lst1); //1) 1, cout << "2) "; PrintList(lst2); //2) 40,20,10,30,40, lst2.sort(); cout << "3) "; PrintList(lst2);//3) 10, lst2.pop_front(); cout << "4) "; PrintList(lst2); //4) 20, lst1.remove(2);//删除所有和A(2)相等的元素 cout << "5) "; PrintList(lst1); //5) 1, lst2.unique(); //删除所有和前一个元素相等的元素 cout << "6) "; PrintList(lst2); //6) 20, lst1.merge(lst2); //合并 lst2 到 lst1 并清空 lst2 cout << "7) "; PrintList(lst1);//7) 1, cout << "8) "; PrintList(lst2); //8) lst1.reverse(); cout << "9) "; PrintList(lst1);//9) 40,1, lst2.push_back(100); lst2.push_back(200); lst2.push_back(300); lst2.push_back(400); List@H_404_253@::iterator p1,p2,p3; p1 = find(lst1.begin(),lst1.end(),3); p2 = find(lst2.begin(),lst2.end(),200); p3 = find(lst2.begin(),400); lst1.splice(p1,lst2,p3); //将 [p2,p3) 插入 p1 之前,并从 lst2 中删除 [p2,p3) cout << "10) "; PrintList(lst1); //10) 40,200,300, cout << "11) "; PrintList(lst2);//11) 100,400, system("pause"); return 0; } 5 函数对象 若一个类重载了运算符 “()” ,则该类的对象就成为函数对象。 以上是内存溢出为你收集整理的《C++面向对象程序设计》课程笔记 lessen8 程序示例全部内容,希望文章能够帮你解决《C++面向对象程序设计》课程笔记 lessen8 程序示例所遇到的程序开发问题。 如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)