111); myvector.push_back(2);
//弹出一个元素,删除最后一个
myvector.pop_back();
//插入
myvector.insert(myvector.begin() + 1,999);
//根据迭代器的位置
myvector.erase(myvector.begin() + 5);
//myvector.clear(); //删除所有元素
for (int i = 0; i < myvector.size();i++)
{
if (1)
{
//查询,修改
}
std::cout << myvector.at(i) << std::endl;
}
system("pause");
}
10.vector中的元素也是vector
#include
#include
#include
//算法 lambda表达式,不仅仅适用于array,也适用于vector
void main()
{
//可以实现动态无规则数组管理
std::vector
myvector1;
myvector1.push_back(12);
myvector1.push_back(13);
myvector1.push_back(14);
std::vector
myvector2;
myvector2.push_back(22);
std::vector
myvector3;
myvector3.push_back(32);
myvector3.push_back(37);
std::vector
> allvecor;
allvecor.push_back(myvector1);
allvecor.push_back(myvector2);
allvecor.push_back(myvector3);
for (int i = 0; i < allvecor.size();i++)
{
for (int j = 0; j < allvecor[i].size();j++)
{
std::cout << " " << allvecor[i][j];
}
std::cout << "\n";
}
std::cin.get();
}
11.C++中的数组可以直接赋值
#include
#include
#include
#include
void main()
{
double db[4] = { 1.1, 2.2, 3.3, 4.4 };
//std::array数据类型,double元素类型,4个数
std::array
dbnew1 = { 10.1, 10.2, 10.3, 10.4 };
//可以实现数组之间整体操作
std::array
dbnew2 = dbnew1;
for (int i = 0; i < 4; i++)
{
std::cout << db[i] << " " << dbnew1[i] << " " << dbnew2[i] << std::endl;
}
std::cin.get();
}
运行结果:

12.array的字符串<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxwIGFsaWduPQ=="left">#include
#include
#include
#include
void main()
{
std::array
string1 = { "calc", "notepad", "tasklist", "mspaint", "write" };
for (int i = 0; i < 5; i++)
{
std::cout << string1[i] << std::endl;
system(string1[i].c_str());
}
std::cin.get();
}
12.C++可以加操作
#include
#include
#include
#include
void main()
{
std::string str1 = "task";
std::string str2 = "list";
std::string str3 = str1 + str2;
system(str3.c_str());
std::cin.get();
}
13.new的高级,缓冲区
#include
#include
const int buf(512);//限定一个常量整数512
int N(5);//数组的长度
char buffer[buf] = { 0 };//静态区
//p1,p3,p5作为指针变量在栈区,存储的地址指向堆区
//手动释放内存
//p2,p4,p6作为指针变量在栈区,存储的地址在静态区。缓冲区。
//自动释放内存,用于分配用完了就不会再用的数据
//避免内存泄漏,自动释放内存。牺牲了内存访问独立性,
using namespace std;
void main()
{
double *p1, *p2;
std::cout << "\n\n\n";
p1 = new double[N];//分配内存,N个元素的大小
p2 = new (buffer)double[N];//指定区域分配内存
for (int i = 0; i < N; i++)
{
p1[i] = p2[i] = i + 10.8;//对于数组初始化
std::cout << "p1=== " << &p1[i] << " " << p1[i];
std::cout << " p2=== "<< &p2[i] << " " << p2[i] << std::endl;
}
double *p3, *p4;
std::cout << "\n\n\n";
p3 = new double[N];//分配内存,N个元素的大小
p4 = new (buffer)double[N];//指定区域分配内存
for (int i = 0; i < N; i++)
{
p3[i] = p4[i] = i + 10.8;//对于数组初始化
std::cout << "p3=== " << &p3[i] << " " << p3[i];
std::cout << " p4=== "<< &p4[i] << " " << p4[i] << std::endl;
}
double *p5, *p6;
std::cout << "\n\n\n";
p5 = new double[N];//分配内存,N个元素的大小
p6 = new (buffer)double[N];//指定区域分配内存
for (int i = 0; i < N; i++)
{
p6[i] = p5[i] = i + 10.8;//对于数组初始化
std::cout << "p5=== " << &p5[i] << " " << p5[i];
std::cout << " p6=== "<< &p6[i] << " " << p6[i] << std::endl;
}
std::cin.get();
}
14.多元数组
#include
#include
//void在参数内部意味着参数为空,不写也意味着为空
void main(void)
{
int int1 = 10;
double double1 = 99.8;
char ch = 'A';
char *str = "hellochina";
std::tuple
mytuple(int1, double1, ch, str);
const int num = 3;
auto data0 = std::get<0>(mytuple);
auto data1 = std::get<1>(mytuple);
auto data2 = std::get<2>(mytuple);
auto data3 = std::get
(mytuple);//下标只能是常量
std::cout << typeid(data3).name() << std::endl;
decltype(data0) dataA; //获取数据类型再次创建
//mytuple.swap(mytuple); array vector都有交换的功能
std::cout << data0 << " " << data1 << " " << data2 << " " << data3 << std::endl;
std::cin.get();
}
//tuple必须是一个静态数组
//配合vector,array