在c++中,vector 是一个十分有用的容器, 相比一般的数组可一方便的进行插入和删除, 可以方便的查询相关的信息和清空。
(1)头文件#include.
(2)创建vector对象,vector vec;
(3)尾部插入数字:vec.push_back(a);
(4)使用下标访问元素,cout<
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<// 指针指向每个元素
(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(7)删除元素: vec.erase(vec.begin()+2); //删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
(8)向量大小:vec.size(); // 查询整个容器的大小
(9)清空:vec.clear(); // 清空容器
#include
reverse(vec.begin(),vec.end());将元素翻转
#include,
sort(vec.begin(),vec.end()); //默认是按升序排列
bool Comp(const int &a,const int &b)
{
return a>b;
}
sort(vec.begin(),vec.end(),Comp);
二维 Vector 相当于一个二维数组,只需要先将一个个 vector 组装好,在加到外围的 Vector 即可。
std::vector<std::vector<std::string>>& vAllRow
while(读取数据到r中)
{
std::vector<std::string> vRow;
vRow.clear();
vRow.push_back(r[0]);
vRow.push_back(r[1]);
vRow.push_back(r[2]);
vRow.push_back(r[3]);
vRow.push_back(r[4]);
vRow.push_back(r[5]);
vAllRow.push_back(vRow);
}
数据存储在了vAllRow中,下面将读取其中的数据显示出来
vector<vector<std::string>>::iterator item2v = vAllRow.begin();
while(item2v !=vAllRow.end())
{
vector<std::string>::iterator item = (*item2v).begin();
while(item != (*item2v).end())
{
cout<<*item<<"\t";
item++;
}
std::cout<<std::endl;
item2v++;
}
主要是尝试在文件中记录和读取信息,中间用到了vector
#include
#include
#include // 文件流
#include
#include
using namespace std;
int main()
{
//写文件
ofstream outFile;
outFile.open("data.csv", ios::out);
outFile << "name" << ',' << "age" << ',' << "hobby" << endl;
outFile << "Mike" << ',' << 18 << ',' << "paiting" << endl;
outFile << "Tom" << ',' << 25 << ',' << "football" << endl;
outFile << "Jack" << ',' << 21 << ',' << "music" << endl;
outFile.close();
//写文件
ifstream inFile("data.csv", ios::in);
string lineStr;
vector< vector<string> > strArray; //vector 类型文string
while(getline(inFile, lineStr)) // 从 inFile 中读取一行, 放到 lineStr 中
{
cout<< lineStr<stringstream ss(lineStr); //读取内容放置在 ss流 中, 括号相当于初始化
string str;
vector<string> lineArray;
// 按照逗号分隔
while(getline(ss, str, ',')) // ss 中, 按照 “,” 逗号分割将ss 分割成一个个str
{
lineArray.push_back(str); // 将字符串放置到 line Array
cout<< str<return 0;
}
这个小练习主要总结了一下几个知识点:
(1) vector vec 初始化 vector.begin() 起始点,
vector.end() 终止点, vector.push_back(str) 推入容器中, vector.clear() 清空容器
(2) vector < vector < string> > Vec; // 二维 Vector,
(3) vector::iterator item = (*item2v).begin(); // vector 具有 iterator 属性,
可以基于此进行迭代。 *item, *item++ 等。
(4) 写文件的方法: //写文件
ofstream outFile;
outFile.open("data.csv", ios::out); // 打开文件
outFile << "name" << ',' << "age" << ',' << "hobby" << endl;
outFile.close();
(5) 读文件的方法:
ifstream inFile("data.csv", ios::in);
lineArray.push_back(str);
(6) 获取当前时间戳
#include
cout<