vector1 8.15

// vector1 stl 8.15.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。
//

//#include
//
//int main()
//{
// std::cout << “Hello World!\n”;
//}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
//#include
//#include
//using namespace std;
//int main()
//{
// // constructors used in the same order as described above:
// vector first; // empty vector of ints
// vector second(4, 100); // four ints with value 100
// vector third(second.begin(), second.end()); // iterating through second
// vector fourth(third); // a copy of third
// // 下面涉及迭代器初始化的部分,我们学习完迭代器再来看这部分
// // the iterator constructor can also be used to construct from arrays:
// int myints[] = { 16,2,77,29 };
// vector fifth(myints, myints + sizeof(myints) / sizeof(int));
// cout << “The contents of fifth are:”;
// for (std::vector::iterator it = fifth.begin(); it != fifth.end(); ++it)
// cout << ’ ’ << *it;
// cout << ‘\n’;
// return 0;
//}
//迭代器的获取
//#include
//#include
//using namespace std;
//int main()
//{
// //容器创建一个新的空的,这里使用的是默认的拷贝构造。
// vector myvector;
// //使用的是尾插进行的操作。直接使用的是现成的接口。
// for (int i = 1; i <= 5; i++)
// {
// myvector.push_back(i);
// }
// cout << “myvector contains:”;
// //迭代器的获取,注意书写的形式。
// for (vector::iterator it = myvector.begin(); it != myvector.end(); ++it)
// {
// //这里是非const类型的操作,就是可以对齐进行内容的修改。
// //*it = 1;
// cout << ’ ’ << *it;
// }
// // cout << ’ ’ << *it;
// cout << ‘\n’;
// return 0;
//}

//#include
//#include
//
//int main()
//{
// std::vector myvector;
// int sum(0);
// for (int i = 1; i <= 10; i++) myvector.push_back(i);
// while (!myvector.empty())
// {
// //这里是表示的是每次从最后一个位置加,加完之后删除。
// sum += myvector.back();
// myvector.pop_back();
// }
// std::cout << "total: " << sum << ‘\n’;
// return 0;
//}

//#include
//#include
//using namespace std;
const 对象的输出打印。
//void PrintVector(const vector& v)
//{
// // const对象使用const迭代器进行遍历打印
// vector::const_iterator it = v.begin();
// while (it != v.end())
// {
// cout << *it << " ";
// ++it;
// }
// cout << endl;
//}
//int main()
//{
// // 使用push_back插入4个数据
// vector v;
// v.push_back(1);
// v.push_back(2);
// v.push_back(3);
// v.push_back(4);
// // 使用迭代器进行遍历打印
// vector::iterator it = v.begin();
// while (it != v.end())
// {
// cout << *it << " ";
// ++it;
// }
// cout << endl;
// // 使用迭代器进行修改
// it = v.begin();
// while (it != v.end())
// {
// *it *= 2;
// ++it;
// }
// // 使用反向迭代器进行遍历再打印
// vector::reverse_iterator rit = v.rbegin();
// while (rit != v.rend())
// {
// cout << *rit << " ";
// ++rit;
// }
// cout << endl;
// PrintVector(v);
// return 0;
//}

#include
#include
using namespace std;
//assign 赋值的内容
vector v;
void test()
{
vector v(3,2);
//赋值
v.assign(5,1);
printF(v);
vector v2(3, 6);
v.assign(v2.begin(), v2.end());
printF(v);
int arr[] = { 1,2,3,4 };
v.assign(arr, arr + sizeof(arr) / sizeof(arr[0]));
printF(v);
//未删
popback();

//插入的操作
v.insert(v.begin(), 0);

//删除
//删除 一个字符
//删除一个区间  左闭右开

//emplace 这里也是插入的操作,但是区别就是可以自己创建一个对象。
//优势主要是体现在自定义的类型
//emplace与insert的区别

//swap  交换相同的类型
vector<A> v3;
v3.swap(v2);
swap(v3, v2);
//清空的操作
v2.clear();

}

//迭代器失效的操作
//迭代器失效的场景 使空间发生变化的,都有可能使我们的迭代器失效。
//失效的原因就是因为,当空间发生变化的时候,迭代器的指向发生了变化,就是可能丢弃之前的空间,而指向新的空间
//1.迭代器指向的位置无效,空间释放(非法访问)
//2.指向发生了变化(错位)
//3.空间发生变化或者删除,都会引起迭代器的失效
void test1()
{
vector v(3, 0);
vector::iterator it = v.begin();
cout << *it << endl;
v.resize(30, 1);
v.reserve(30);
v.insert(v.begin(), 1);
v.push_back(2);
v.emplace(v.begin(), 3);
v.erase(it);
//解决方式:重新获取迭代器
it = v.begin();
cout << *it << endl;

}

//
void test()
{
vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);

vector<int>::iterator it = v.begin();
while (it != v.end())
{
	if (*it % 2 == 0)
		v.erase(it);
	++it;
}

}

//题目. 只出现一次的数字
class Solution {
public:
int singleNumber(vector& nums)
{
int value = 0;
for (auto e : v)
{
value ^= e;
}
return value;
}
};
//杨辉三角
// 涉及resize / operator[]
class Solution {
public:
// 核心思想:找出杨辉三角的规律,发现每一行头尾都是1,中间第[j]个数等于上一行[j-1]+[j]
//首先是开行
vector<vector> generate(int numRows)
{
//再就是列的空间的开辟。
vector<vector> vv;
// 先开辟杨辉三角的空间
vv.resize(numRows);
for (size_t i = 1; i <= numRows; ++i)
{
vv[i - 1].resize(i, 0);
// 每一行的第一个和最后一个都是1
vv[i - 1][0] = 1;
vv[i - 1][i - 1] = 1;
}
for (size_t i = 0; i < vv.size(); ++i)
{
for (size_t j = 0; j < vv[i].size(); ++j)
{
if (vv[i][j] == 0)
{
vv[i][j] = vv[i - 1][j - 1] + vv[i - 1][j];
}
}
}
return vv;
}
};
//周老师
vector<vector> generate(int numRows)
//创建行 行数是题目给出的。
vector<vector> mat(numRows);
//创建列
for (int i = 0; i < numRows; ++i)
{
mat[i].resize(i + 1);
}
for (int i = 0; i < numRows; ++i)
{
//第一行和第一列为1
mat[i][0] = mat[i][i] = 1;
for (int j = 1; j < i; ++j)
{
mat[i][j] = mat[i - 1][j] + mat[i - 1][j - 1];

}
return mat;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值