//////////////////////////////////////////////////////////////////////////vector
#include <windows.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define VEC_COUNT 3
void main(int argc,TCHAR*argv[])
{
//1.构造函数
vector<int>vec1,vec2;
//vector<int> vec(VEC_COUNT); //有VEC_COUNT个元素,值都为0
//vector<int> vec(VEC_COUNT,2); //有VEC_COUNT个元素,值都为2
//2.添加元素
vec1.push_back(0);
vec1.push_back(4);
vec2.push_back(0);
vec2.push_back(3);
vec2.push_back(8);
//3.容量 长度
cout<<"vec1容量是:"<<vec1.capacity()<<", vec2长度是:"<<vec1.size()<<endl;
cout<<"vec2容量是:"<<vec2.capacity()<<", vec2长度是:"<<vec2.size()<<endl;
//4.遍历输出所有元素 下标/迭代器
for (vector<int>::iterator it=vec1.begin(); it!=vec1.end(); it++)
cout<<*it<<" ";
cout<<endl;
for (int i=0;i<vec2.size();i++)
cout<<vec2[i]<<" ";
cout<<endl;
//5.大于,小于,等于,大于等于,小于等于
if(vec1 < vec2)
cout<<"vec1 小于 vec2"<<endl;
else if(vec1 > vec2)
cout<<"vec1 大于 vec2"<<endl;
else if(vec1 == vec2)
cout<<"vec1 等于 vec2"<<endl;
//6.重设容器大小
//vec1.resize(1); //重新设置为,有VEC_COUNT个元素,舍掉后面的值
//vec1.resize(4); //重新设置为,有VEC_COUNT个元素,新插入的值都为0
//vec1.resize(4,2); //重新设置为,有VEC_COUNT个元素,新插入的值都为2
//7.插入
//vec1.insert(vec1.begin(),3); //插入一个值 3
//vec1.insert(vec1.begin(),3,5); //插入三个值 都是5
//vec1.insert(vec1.begin(),vec2.begin(),vec2.end()); //插入Vec2中的值
//8.删除
//vec1.erase(vec1.begin()+1); //删除指定位置的元素
//vec1.erase(vec1.begin(),vec1.end()); //删除两个位置之间的元素
//vec1.clear(); //删除vec1中所有元素
//9.赋值与对换
//vec1 = vec2; //vec1元素的个数,内容都与vec2相同
//vec2 = vec1; //vec2元素的个数,内容都与vec1相同
//vec1.swap(vec2); //交换两个容易的个数,内容
for (it=vec1.begin(); it!=vec1.end(); it++)
cout<<*it<<" ";
cout<<endl;
for (it=vec2.begin(); it!=vec2.end(); it++)
cout<<*it<<" ";
cout<<endl;
//10.泛型算法
it = find(vec1.begin(),vec1.end(),4); //查找元素4在vec1中的位置
cout<<*it<<endl;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////list
#include <list>
#include <iostream>
using namespace std;
void main(void)
{
int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
list<int> name(a,a+10);
list<int>::iterator it; //迭代器
name.push_back(11);//加在最后
name.push_front(0);//加在开始
// phone_book.insert(i,e);//加在在i所引用的元素之前
//name.insert(5,5);//为什么不行
for (it = name.begin(); it != name.end(); it++)
{
const int& e=*it;
cout << e << endl;
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////map这个程序运行不了,不知道为什么???
1
#include <iostream>
2
#include <iomanip>
3
#include <string>
4
#include <map>
5
using namespace std;
6
int main()
7

{
8
map<string,int> m;
9
int n; cin>>n;
10
string s;
11
int x;
12
for (int i=1;i<=n;i++)
13

{
14
cin>>s>>x;
15
m[s]=x;
16
}
17
int k;
18
cin>>k;
19
for (int i=1;i<=k;i++)
20

{
21
cin>>s;
22
cout<<m[s]<<endl;
23
}
24
return 0;
25
}
26
27
28
一、map的说明
29
1 头文件
30
#include <map>
31
32
2 定义
33
map<string, int> my_Map;
34
或者是typedef map<string, int> MY_MAP;
35
MY_MAP my_Map;
36
37
3 插入数据
38
(1) my_Map["a"] = 1;
39
(2) my_Map.insert(map<string, int>::value_type("b",2));
40
(3) my_Map.insert(pair<string,int>("c",3));
41
(4) my_Map.insert(make_pair<string,int>("d",4));
42
43
4 查找数据和修改数据
44
(1) int i = my_Map["a"];
45
my_Map["a"] = i;
46
(2) MY_MAP::iterator my_Itr;
47
my_Itr.find("b");
48
int j = my_Itr->second;
49
my_Itr->second = j;
50
不过注意,键本身是不能被修改的,除非删除。
51
52
5 删除数据
53
(1) my_Map.erase(my_Itr);
54
(2) my_Map.erase("c");
55
还是注意,第一种情况在迭代期间是不能被删除的,道理和foreach时不能删除元素一样。
56
57
6 迭代数据
58
for (my_Itr=my_Map.begin(); my_Itr!=my_Map.end(); ++my_Itr)
{}
59
60
7 其它方法
61
my_Map.size() 返回元素数目
62
my_Map.empty() 判断是否为空
63
my_Map.clear() 清空所有元素
64
可以直接进行赋值和比较:=, >, >=, <, <=, != 等等
65
66
更高级的应用查帮助去吧,^_^;
本文详细介绍了C++中vector、list、map容器的使用方法,包括构造、添加元素、遍历、比较、赋值、删除等操作,并提供了实例代码和解释。
1528

被折叠的 条评论
为什么被折叠?



