#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
vector<int> ivec2(ivec);
if (ivec2.empty() == false) {
for (vector<int>::size_type ix = 0; ix != ivec2.size(); ++ix)
cout << ivec2[ix] << endl;
}
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ls
com.txt main main.cc Sales_item.h
pateo@pateo-B86N53X:~/work/study$ ./main
ivec.size: 10
0
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
vector<int> ivec2(ivec.begin(),ivec.end());
if (ivec2.empty() == false) {
for (vector<int>::size_type ix = 0; ix != ivec2.size(); ++ix)
cout << ivec2[ix] << endl;
}
return 0;
}
输出同上
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
using std::size_t;
#include <vector>
using std::vector;
int main()
{
char *words[] = {"stately", "plump", "buck", "mulligan"};
size_t words_size = sizeof(words)/sizeof(char *);
vector<string> words2(words, words + words_size);
for (vector<int>::size_type ix = 0;ix != words2.size(); ++ix)
cout << words2[ix] << endl;
return 0;
}
输出
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
main.cc: In function ‘int main()’:
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
pateo@pateo-B86N53X:~/work/study$ ./main
stately
plump
buck
mulligan
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
using std::size_t;
#include <vector>
using std::vector;
int main()
{
const vector<int>::size_type ivec_size = 5;
vector<string> words2(ivec_size, "liaojianguo");
for (vector<int>::size_type ix = 0;ix != words2.size(); ++ix)
cout << words2[ix] << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
liaojianguo
liaojianguo
liaojianguo
liaojianguo
liaojianguo
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
using std::size_t;
#include <vector>
using std::vector;
int main()
{
vector<string> words2(3);
for (vector<int>::size_type ix = 0;ix != words2.size(); ++ix)
cout << "----------------" << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
----------------
----------------
----------------
pateo@pateo-B86N53X:~/work/study$
vector< vector<string> > 必须用空格隔开两个相邻的>符号,已示这是两个分开的符号,不然,系统会认为为>>是个单符号,为右移操作符,并结果导致编译时错误
#include <vector>
#include <string>
#include <iostream>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector<int> ivec(10);
int x = 0;
for (vector<int>::iterator iter = ivec.begin();iter != ivec.end(); ++iter)
{
*iter = x++;
}
for (vector<int>::iterator iter = ivec.begin();iter != ivec.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (vector<int>::reverse_iterator iter = ivec.rbegin();iter != ivec.rend(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for(size_t ix = 5;ix != 8;++ix)
{
ilist.push_front(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
7 6 5 0 1 2 3
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
int spouse = 5;
ilist.insert(ilist.begin(),spouse);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
5 0 1 2 3
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
ilist.insert(ilist.end(),2,0);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3 0 0
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
int iarray[4] = {2,4,6,8};
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
ilist.insert(ilist.end(),iarray,iarray+4);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3 2 4 6 8
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
int iarray[4] = {9,8,7,6};
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
list<int>::iterator ilist_iter = ilist.begin();
ilist.insert(ilist_iter,iarray+2,iarray+4);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
7 6 0 1 2 3
pateo@pateo-B86N53X:~/work/study$
ivec1: 1 3 5 7 9 12
ivec2: 0 2 4 6 8 10 12
ivec3: 1 3 9
ivec4: 1 3 5 7
ivec5:1 3 5 7 9 12
ivec1<ivec2 false
ivec2<ivec1 true
ivec1<ivec3 true
ivec1<ivec4 false
ivec1==ivec5 true
ivec1==ivec4 false
ivec1 != ivec4 true
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.resize(3);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 2
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.resize(8,0);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 2 3 0 0 0 0
pateo@pateo-B86N53X:~/work/study$
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;
ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
if (ivec.empty() == false) {
for (vector<int>::size_type ix = 0;
ix != ivec.size(); ++ix)
cout << ivec.at(ix) << endl;
}
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
ivec.size: 10
0
1
2
3
4
5
6
7
8
9
pateo@pateo-B86N53X:~/work/study$
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
if (ivec.empty() == false) {
for (vector<int>::size_type ix = 0;ix != ivec.size(); ++ix)
cout << ivec.at(ix) << endl;
}
cout << "--------------------------" << endl;
process(ivec.front());
ivec.pop_front();
if (ivec.empty() == false) {
for (vector<int>::size_type ix = 0;ix != ivec.size(); ++ix)
cout << ivec.at(ix) << endl;
}
return 0;
}
at和[index]只适用于vector和deque,pop_front在vector中不支持
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
main.cc: In function ‘int main()’:
main.cc:17: error: ‘process’ was not declared in this scope
main.cc:18: error: ‘class std::vector<int, std::allocator<int> >’ has no member named ‘pop_front’
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.pop_front();
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
1 2 3
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.pop_back();
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 2
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.clear();
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
int x = 2;
list<int>::iterator fiter = find(ilist.begin(),ilist.end(),x);
if(fiter != ilist.end())
ilist.erase(fiter);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 3
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
int x = 2; int y = 4;
list<int>::iterator fiter1 = find(ilist.begin(),ilist.end(),x);
list<int>::iterator fiter2 = find(ilist.begin(),ilist.end(),y);
ilist.erase(fiter1,fiter2);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1
pateo@pateo-B86N53X:~/work/study$
赋值:
c1 = c2;
c1.erase(c1.begin(),c1.end());
c1.insert(c1.begin(),c2.begin(),c2.end());
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist1;
list<int> ilist2;
for(size_t ix = 0;ix != 4;++ix)
{
ilist1.push_back(ix);
}
for(size_t ix = 5;ix != 10;++ix)
{
ilist2.push_back(ix);
}
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist1.swap(ilist2);
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
5 6 7 8 9
--------------------------
5 6 7 8 9
0 1 2 3
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist1;
list<int> ilist2;
for(size_t ix = 0;ix != 4;++ix)
{
ilist1.push_back(ix);
}
for(size_t ix = 5;ix != 10;++ix)
{
ilist2.push_back(ix);
}
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist1.assign(ilist2.begin(),ilist2.end());
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
5 6 7 8 9
--------------------------
5 6 7 8 9
5 6 7 8 9
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist1;
for(size_t ix = 0;ix != 4;++ix)
{
ilist1.push_back(ix);
}
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist1.assign(10,5);
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
5 5 5 5 5 5 5 5 5 5
pateo@pateo-B86N53X:~/work/study$
vector和deque容器提供了对元素的快速随机访问,但是,在容器的任意位置插入或删除元素,比在容器尾部插入和删除的开销更大,list类型在任何位置都能快速插入和删除,但是随机访问开销更大
示例是最好的理解方法
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
vector<int> ivec2(ivec);
if (ivec2.empty() == false) {
for (vector<int>::size_type ix = 0; ix != ivec2.size(); ++ix)
cout << ivec2[ix] << endl;
}
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ls
com.txt main main.cc Sales_item.h
pateo@pateo-B86N53X:~/work/study$ ./main
ivec.size: 10
0
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
vector<int> ivec2(ivec.begin(),ivec.end());
if (ivec2.empty() == false) {
for (vector<int>::size_type ix = 0; ix != ivec2.size(); ++ix)
cout << ivec2[ix] << endl;
}
return 0;
}
输出同上
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
using std::size_t;
#include <vector>
using std::vector;
int main()
{
char *words[] = {"stately", "plump", "buck", "mulligan"};
size_t words_size = sizeof(words)/sizeof(char *);
vector<string> words2(words, words + words_size);
for (vector<int>::size_type ix = 0;ix != words2.size(); ++ix)
cout << words2[ix] << endl;
return 0;
}
输出
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
main.cc: In function ‘int main()’:
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
main.cc:14: warning: deprecated conversion from string constant to ‘char*’
pateo@pateo-B86N53X:~/work/study$ ./main
stately
plump
buck
mulligan
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
using std::size_t;
#include <vector>
using std::vector;
int main()
{
const vector<int>::size_type ivec_size = 5;
vector<string> words2(ivec_size, "liaojianguo");
for (vector<int>::size_type ix = 0;ix != words2.size(); ++ix)
cout << words2[ix] << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
liaojianguo
liaojianguo
liaojianguo
liaojianguo
liaojianguo
#include <iostream>
using std::cout; using std::endl;
#include <string>
using std::string;
#include <list>
using std::list;
#include <cstddef>
using std::size_t;
#include <vector>
using std::vector;
int main()
{
vector<string> words2(3);
for (vector<int>::size_type ix = 0;ix != words2.size(); ++ix)
cout << "----------------" << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
----------------
----------------
----------------
pateo@pateo-B86N53X:~/work/study$
说明:
vector< vector<string> > 必须用空格隔开两个相邻的>符号,已示这是两个分开的符号,不然,系统会认为为>>是个单符号,为右移操作符,并结果导致编译时错误
#include <vector>
#include <string>
#include <iostream>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main()
{
vector<int> ivec(10);
int x = 0;
for (vector<int>::iterator iter = ivec.begin();iter != ivec.end(); ++iter)
{
*iter = x++;
}
for (vector<int>::iterator iter = ivec.begin();iter != ivec.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (vector<int>::reverse_iterator iter = ivec.rbegin();iter != ivec.rend(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for(size_t ix = 5;ix != 8;++ix)
{
ilist.push_front(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
7 6 5 0 1 2 3
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
int spouse = 5;
ilist.insert(ilist.begin(),spouse);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
5 0 1 2 3
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
ilist.insert(ilist.end(),2,0);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3 0 0
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
int iarray[4] = {2,4,6,8};
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
ilist.insert(ilist.end(),iarray,iarray+4);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3 2 4 6 8
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
int iarray[4] = {9,8,7,6};
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
list<int>::iterator ilist_iter = ilist.begin();
ilist.insert(ilist_iter,iarray+2,iarray+4);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
7 6 0 1 2 3
pateo@pateo-B86N53X:~/work/study$
ivec1: 1 3 5 7 9 12
ivec2: 0 2 4 6 8 10 12
ivec3: 1 3 9
ivec4: 1 3 5 7
ivec5:1 3 5 7 9 12
ivec1<ivec2 false
ivec2<ivec1 true
ivec1<ivec3 true
ivec1<ivec4 false
ivec1==ivec5 true
ivec1==ivec4 false
ivec1 != ivec4 true
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.resize(3);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 2
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.resize(8,0);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 2 3 0 0 0 0
pateo@pateo-B86N53X:~/work/study$
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;
ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
if (ivec.empty() == false) {
for (vector<int>::size_type ix = 0;
ix != ivec.size(); ++ix)
cout << ivec.at(ix) << endl;
}
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
ivec.size: 10
0
1
2
3
4
5
6
7
8
9
pateo@pateo-B86N53X:~/work/study$
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0;ix != 10; ++ix)
ivec.push_back(ix);
cout << "ivec.size: " << ivec.size() << endl;
if (ivec.empty() == false) {
for (vector<int>::size_type ix = 0;ix != ivec.size(); ++ix)
cout << ivec.at(ix) << endl;
}
cout << "--------------------------" << endl;
process(ivec.front());
ivec.pop_front();
if (ivec.empty() == false) {
for (vector<int>::size_type ix = 0;ix != ivec.size(); ++ix)
cout << ivec.at(ix) << endl;
}
return 0;
}
at和[index]只适用于vector和deque,pop_front在vector中不支持
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
main.cc: In function ‘int main()’:
main.cc:17: error: ‘process’ was not declared in this scope
main.cc:18: error: ‘class std::vector<int, std::allocator<int> >’ has no member named ‘pop_front’
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.pop_front();
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
1 2 3
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.pop_back();
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 2
#include <vector>
#include <string>
#include <iostream>
#include <list>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist.clear();
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
int x = 2;
list<int>::iterator fiter = find(ilist.begin(),ilist.end(),x);
if(fiter != ilist.end())
ilist.erase(fiter);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1 3
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist;
for(size_t ix = 0;ix != 4;++ix)
{
ilist.push_back(ix);
}
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
int x = 2; int y = 4;
list<int>::iterator fiter1 = find(ilist.begin(),ilist.end(),x);
list<int>::iterator fiter2 = find(ilist.begin(),ilist.end(),y);
ilist.erase(fiter1,fiter2);
for (list<int>::iterator iter = ilist.begin();
iter != ilist.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
0 1
pateo@pateo-B86N53X:~/work/study$
赋值:
c1 = c2;
c1.erase(c1.begin(),c1.end());
c1.insert(c1.begin(),c2.begin(),c2.end());
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist1;
list<int> ilist2;
for(size_t ix = 0;ix != 4;++ix)
{
ilist1.push_back(ix);
}
for(size_t ix = 5;ix != 10;++ix)
{
ilist2.push_back(ix);
}
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist1.swap(ilist2);
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
5 6 7 8 9
--------------------------
5 6 7 8 9
0 1 2 3
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist1;
list<int> ilist2;
for(size_t ix = 0;ix != 4;++ix)
{
ilist1.push_back(ix);
}
for(size_t ix = 5;ix != 10;++ix)
{
ilist2.push_back(ix);
}
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist1.assign(ilist2.begin(),ilist2.end());
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
for (list<int>::iterator iter = ilist2.begin();
iter != ilist2.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
5 6 7 8 9
--------------------------
5 6 7 8 9
5 6 7 8 9
pateo@pateo-B86N53X:~/work/study$
#include <vector>
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> ilist1;
for(size_t ix = 0;ix != 4;++ix)
{
ilist1.push_back(ix);
}
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
cout << "--------------------------" << endl;
ilist1.assign(10,5);
for (list<int>::iterator iter = ilist1.begin();
iter != ilist1.end(); ++iter)
cout << *iter << " ";
cout << endl;
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$ g++ -o main main.cc
pateo@pateo-B86N53X:~/work/study$ ./main
0 1 2 3
--------------------------
5 5 5 5 5 5 5 5 5 5
pateo@pateo-B86N53X:~/work/study$
vector和deque容器提供了对元素的快速随机访问,但是,在容器的任意位置插入或删除元素,比在容器尾部插入和删除的开销更大,list类型在任何位置都能快速插入和删除,但是随机访问开销更大