vector:动态字符串数组
#include
#include
#include
//C++的标准库
#include
//C++字符串
#include
using std::array;//静态数组,栈上,
using std::vector;//动态数组,堆上,
using std::string;
//使用C++风格数组不需要管理内存。
//array注意不要栈溢出
//array适用于任何类型
void main()
{
vector
string1;//动态字符串数组
//可以反复利用
string1.push_back("notepad");
string1.push_back("calc");
string1.push_back("mspaint");
string1.pop_back();//删除一个
//string1.clear();//清空
for (int i = 0; i < string1.size(); i++)//遍历动态数组
{
system(string1[i].c_str());
}
system("pause");
}
5.通过iterator关键字进行过迭代
#include
#include
#include
//C++的标准库
#include
//C++字符串
#include
using std::array; //静态数组,栈上
using std::vector; //动态数组,堆上
using std::string;
void main()
{
vector
string1;//动态字符串数组
string1.push_back("notepad");
string1.push_back("calc");
string1.push_back("mspaint");
vector
::iterator ibegin, iend;//迭代器
ibegin = string1.begin(); //数据起始点
iend = string1.end(); //结束
for (;ibegin != iend;ibegin++)
{
string tempstr = *ibegin; //获取指针指向的数据
system(tempstr.c_str()); //执行指令
}
system("pauese");
}
6.正逆向迭代数组
#include
#include
#include
//C++的标准库
#include
//C++字符串
#include
using std::array; //静态数组,栈上
using std::vector; //动态数组,堆上
using std::string;
void main()
{
array
myint = { 1, 2, 3, 4, 5 };
array
::iterator ibegin, iend;//正向迭代器
ibegin = myint.begin();
iend = myint.end();
while (ibegin != iend)
{
std::cout << *ibegin << std::endl;
ibegin++;
}
std::cout << "----------" << std::endl;
array
::reverse_iterator rbegin, rend;
rbegin = myint.rbegin();
rend = myint.rend();
while (rbegin != rend)
{
std::cout << *rbegin << std::endl;
rbegin++;
}
std::cin.get();
}

7.反向迭代器
#include
#include
#include
//C++的标准库
#include
//C++字符串
#include
using std::array; //静态数组,栈上
using std::vector; //动态数组,堆上
using std::string;
void main()
{
vector
string1; //动态字符串数组
string1.push_back("notepad");
string1.push_back("calc");
string1.push_back("mspaint");
//反向迭代器
vector
::reverse_iterator rbegin = string1.rbegin();
vector
::reverse_iterator rend = string1.rend();
//rend最后不指向数据,指向数据的结尾的下一个节点
//当使用下面的方法时,只打印了记事本,计算器
rend--;
A:if (rbegin != rend)
{
system((*rend).c_str()); //执行指令
//rbegin++;
rend--;
goto A;
}
}
8.lambda表达式,不仅仅适用与array,也适用于vector
#include
#include
#include
//算法 lambda表达式,不仅仅适用于array,也适用于vector
void main()
{
std::vector
myvector;
myvector.push_back(11);
myvector.push_back(22);
myvector.push_back(33);
myvector.push_back(3);
myvector.push_back(4);
myvector.push_back(5);
int res = 0; //结果
//&res直接操作一个变量,res等价于返回值,x代表参数,
//每次充当迭代器指向的元素,大括号就是代码
std::for_each(myvector.begin(), myvector.end(), [&res](int x){res += x; });
std::cout << res;
std::cin.get();
}
运行结果是:

9.vector的增删改查
#include
#include
#include
//算法 lambda表达式,不仅仅适用于array,也适用于vector
void main()
{
//分配5个空间,默认初始化为0
std::vector
myvector(5);
myvector.push_back(1);
myvector.push_back(11);
myvector.push_back(111);
myvector.push_back(1