#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类型在任何位置都能快速插入和删除,但是随机访问开销更大