STL中的Vector(顺序表)
vector容器的基本用法:
template<class T>
class vector
{
T* _a;
size_t size;
size_t capacity;
}
尾插和遍历:
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);//遍历
for(int i=0;i<v.size();i++)
{cout<<v[i]<<endl;
}vector<int>::iterator it = v.begin();
while(it!=v.end())
{cout<<*it<<endl;++it;
}for(auto it:v)
{cout<<it<<endl;
}
vector<int> v(10,1) 定义一个变量开10个空间的大小,并初始化为1;
vector<int> v;
v.reserve(100);//扩容100个空间大小v.resize(100,0);//开100个空间并进行初始化
find函数是在库里面。vector里面没有find,使用find要调用头文件algorithm;
string用自己的find,因为string还有字串的查找需要使用find;
vector<string> v; string s1("苹果")
v.push_back(s1)//之前是这样的v.push_back(string(“理想”))//现在这样也是可以的v.push_back(string(“实现”))v.push_back(“实现”)vector<vector<int>> vv;//是二维数组
杨辉三角:
class Solution {public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv(numRows);for(int i = 0; i < numRows; ++i){vv[i].resize(i+1, 1);}for(int i = 2; i < numRows; ++i){for(int j = 1; j < i; ++j){vv[i][j] = vv[i-1][j] + vv[i-1][j-1];}}return vv;}};