vector数组可以用来存储int,char,和class的实体(比如string就是一个class,当然也可以自定义class)
//#define _CRT_SECURE_NO_WARNINGS
//定义_CRT_SECURE_NO_WARNINGS 主要考虑strcpy_s /和 strcpy等部分string字符串操作异常,如果考虑向下兼容则使用,否则不建议使用。
#include <iostream>
#include <exception> //异常
#include <thread> //多线程类库
#include <Windows.h> //多线程如果while挂起执行的时候Sleep需要,注意Unix和Windows的参数格式不一样
#include <string> //字符串需要
#include <vector> //vector数组类,类似string
using namespace std;
class Demo {
private:
__int64 demoid; //注意 int如果超过32的最大长度,需要使用 __int64
public:
int setId(__int64 id) {
this->demoid = id;
return this->demoid;
}
int getId() {
return this->demoid;
}
};
int main()
{
try {
//Int Type
vector<int>obj;//创建一个向量存储容器 int
for (int i = 0; i < 10; i++) // push_back(elem)在数组最后添加数据
{
obj.push_back(i);
cout << obj[i] << ",";
}
for (int i = 0; i < 5; i++)//去掉数组最后一个数据
{
obj.pop_back(); //删除矢量末尾处的元素
}
cout << "\n" << endl;
for (int i = 0; i < obj.size(); i++)//size()容器中实际数据个数
{
cout << obj[i] << ",";
}
cout << "\n";
//Char StringClass Type
vector<char> StringObj; //定义char类型数组类
string str = "Visual Studio"; //需要push的数据为string类库的字符串格式
for (int i = 0; i < str.length(); i++) {
StringObj.push_back(str[i]);
}
for (int i = 0; i < StringObj.size(); i++) {
cout << StringObj[i];
}
cout << "\n";
//Char Type
vector<char> CharObj; //定义char类型数组类
char char_str[32] = "Visual Studio 2022"; //需要push的数据为char字符串格式
int str_length_ = strlen(char_str);// (sizeof(char_str) / sizeof(char_str[0])); //这样获取长度是不严谨的,因为定义的时候为char[32],实际使用并且32个,这样后面就会以空占用
for (int i = 0; i < str_length_; i++) {
cout << "i=" <<i << "&str=" << char_str[i] << "\n";
}
for (int i = 0; i < str_length_; i++) {
CharObj.push_back(char_str[i]);
}
for (int i = 0; i < CharObj.size(); i++) {
cout << CharObj[i];
}
cout << "\n";
vector<Demo> demo; //数组类,注意这里的<Demo>为类名 demo为vector的实体
for (int i = 0; i < 10; i++) {
Demo democlass;
//democlass.setId(100+1); //初始化,这里主要实现不同的demo类的id都不同,也可以在之后的循环体内进行设置初始值
demo.push_back(democlass); //将类PUSH到vector数组里
}
for (int i = 0; i < demo.size(); i++) { //push_back之后,可以使用.size()方法来获取下标数量
demo[i].setId(100+i); //循环的时候,进行SET动作
}
for (int i = 0; i < demo.size(); i++) { //push_back之后,可以使用.size()方法来获取下标数量
cout << demo[i].getId() << "\n";
}
return true;
}
catch (exception e) {
cout << "Exception \n";
return false;
}
}
关于作者