算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
定义stack 对象的示例代码如下:

stack<int> s1;

stack<string> s2;
stack 的基本操作有:

入栈,如例:s.push();在栈顶增加元素

出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。

访问栈顶,如例:s.top()

判断栈空,如例:s.empty(),当栈空时,返回true

访问栈中的元素个数,如例:s.size()。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
(1)vector< 类型 > 标识符 ;

(2)vector< 类型 > 标识符(最大容量) ;
(3)vector< 类型 > 标识符(最大容量,初始所有值);
(4) int i[4] = {12,3,4,5};
vector< 类型 > vi(i , i+2); //得到i索引值为3以后的值 ;
(5)vector< vector<int> > //vi 定义2维的容器;记得一定要有空格,不然可能会报错
vector< int > line // 在使用的时候一定要首先将vi个行进行初始化;
for(int i = 0 ; i < 10 ; i ++)
{
vector.push_back(line);
}
vector 定义二维数组,长度可以不预先确定。
(6)C++ vector排序
vector< int > vi ;
vi.push_back(1);
vi.push_back(3);
vi.push_back(0);
sort(vi.begin() , vi.end()); /// /从小到大
reverse(vi.begin(),vi.end()); /// 从大到小
(7)顺序访问
vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
{
vi.push_back(i);
}
for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法
{
cout <<vi[i] <<" " ;
}
for(vector<int>::iterator it = vi.begin() ;it !=vi.end() ; it++) ///第二种调用方法
{
cout << *it << " " ;
}
(8)查找
vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
{
vector.push_back(i);
}
vector < int >::interator it = find(vi.begin() , vi.end(),3) ;
cout << *it << endl ; ///返回容器内找到值的位置。
(9)使用数组对C++ vector进行初始化
int i[10] ={1,2,3,4,5,6,7,78,8} ;
///第一种
vector<int> vi(i+1,i+3); ///从第2个元素到第3个元素
for(vector <int>::interator it = vi.begin() ; it != vi.end() ; it++)
{
cout << *it <<" " ;
}
(10) 结构体的 vector
struct temp
{
public :
string str ;
public :
int id ;
}tmp;
int main()
{
vector <temp> t ;
temp w1 ;
w1.str = "Hello world" ;
w1.id = 1 ;
t.push_back(t1);
cout << w1.str << "," <<w1.id <<endl ;
return 0 ;
}