STLコンテナvector使用法に関するレコード-更新を継続
4210 ワード
STL容器の使い方をまとめると、前にノートにメモしておきました.一度家に帰ると、ノートを家に置いて、持っていませんでした.STLに関する多くの知識を忘れてしまった.そのため、これからすべてのノートをブログに移します.後で自分で使うためにノートをめくることができます.
第一節:vectorのノート
vectorを使ってみると、これは動的配列です.あなたのニーズに合わせて拡張できます.
使用方法:
vectorで動的に2次元配列を申請して、関数にまたがって使用して、C++クラスの中で応用します
第一節:vectorのノート
vectorを使ってみると、これは動的配列です.あなたのニーズに合わせて拡張できます.
使用方法:
#include
#include
#include
int main()
{
std::vector V;//V
std::vector W(10,2);//W , 10 2;
std::vector WW(W);// W WW
V.push_back(1); // V 1
V.push_back(2);
W.push_back(3);
W.push_back(4);
V.pop_back();//
std::cout << V.size() << std::endl;
std::cout << W.size() << std::endl;
//vector
W[2] = 10;
// V
int k;
for (int i = 0; i < 3; ++i)
{
std::cin >> k;
V.push_back(k);
}
for (auto x : V)//c++11
{
std::cout << x << " ";
}
std::cout << std::endl;
for (auto x : WW)
{
std::cout << x << " ";
}
std::cout << std::endl;
for (std::vector::size_type i = 0; i != W.size(); ++i)// vector
{
std::cout << W[i] << " ";
}
// vector
for (int q = 5; q > 0; q--)
{
//std::cin >> m >> n;
std::vector<:vector> > vecInt(q+1, std::vector(q+2));
for (int i = 0; i < q+1; ++i)
{
for (int j = 0; j < q+2; ++j)
{
vecInt[i][j] = i + j;
}
}
for (int i = 0; i < q+1; ++i)
{
for (int j = 0; j < q+2; ++j)
{
std::cout << "vecInt[" << i << "][" << j << "] = " << vecInt[i][j] << " \t";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
return 0;
}
#include
#include
int main()
{
std::vector Vint(10,0);
auto it = Vint.begin();
it+=4; // 4 , 0
Vint.insert(it,9); //
//Vint.assign(2,8); // ,2 8 Vint , 8 8
Vint[2] = 8; //2 8
std::cout << Vint.size() << std::endl;//Vint 11
for(auto i =0; i < Vint.size(); ++i)
{
std::cout << Vint[i] << " ";
}
std::cout << std::endl;
return 0;
}
vectorで動的に2次元配列を申請して、関数にまたがって使用して、C++クラスの中で応用します
vec.hヘッダファイル#ifndef __VEC_H__
#define __VEC_H__
#include
#include
#include
typedef struct DW // , ,
{
std::vector<:vector> > vecInt;//
}dw,*pDW;
class DWT//
{
public:
void vec(pDW);//
void init();//
pDW getVec() { return pdw; };// ( )
private:
pDW pdw;//
};
#endif // !__VEC_H__
main関数#include "vec.h"
int main()
{
// vector
//std::cin >> m >> n;
DWT dwt;//
dwt.init();//
dwt.vec(dwt.getVec());//
return 0;
}
init.cpp #include "vec.h"
void DWT::init()
{
int n , m;
std::cin >> n >> m;
pdw = new dw;//
pdw -> vecInt = std::vector<:vector> >(n, std::vector(m));// vector
//c https://www.cnblogs.com/feifanrensheng/p/8711601.html
for (std::vector::size_type i = 0; i != pdw->vecInt.size(); ++i)//
{
for (std::vector::size_type j = 0; j != pdw->vecInt[i].size(); ++j)
{
pdw->vecInt[i][j] = i + j;
}
}
}
vec.cpp #include
#include
#include "vec.h"
void DWT::vec(pDW)//
{
for (std::vector::size_type i = 0;i != pdw->vecInt.size(); ++i)
{
for (std::vector::size_type j= 0;j != pdw->vecInt.size(); ++j)
{
std::cout << "vecInt[" << i << "][" << j << "] = " << pdw -> vecInt[i][j] << " \t";
}
std::cout << "vecInt[i] " << pdw->vecInt[i].size() << " " << "vecInt " << pdw->vecInt.size();
std::cout << std::endl;
}
std::cout << std::endl;
}
このようなスパン関数は2次元配列を用いて実現される.
#ifndef __VEC_H__
#define __VEC_H__
#include
#include
#include
typedef struct DW // , ,
{
std::vector<:vector> > vecInt;//
}dw,*pDW;
class DWT//
{
public:
void vec(pDW);//
void init();//
pDW getVec() { return pdw; };// ( )
private:
pDW pdw;//
};
#endif // !__VEC_H__
#include "vec.h"
int main()
{
// vector
//std::cin >> m >> n;
DWT dwt;//
dwt.init();//
dwt.vec(dwt.getVec());//
return 0;
}
#include "vec.h"
void DWT::init()
{
int n , m;
std::cin >> n >> m;
pdw = new dw;//
pdw -> vecInt = std::vector<:vector> >(n, std::vector(m));// vector
//c https://www.cnblogs.com/feifanrensheng/p/8711601.html
for (std::vector::size_type i = 0; i != pdw->vecInt.size(); ++i)//
{
for (std::vector::size_type j = 0; j != pdw->vecInt[i].size(); ++j)
{
pdw->vecInt[i][j] = i + j;
}
}
}
#include
#include
#include "vec.h"
void DWT::vec(pDW)//
{
for (std::vector::size_type i = 0;i != pdw->vecInt.size(); ++i)
{
for (std::vector::size_type j= 0;j != pdw->vecInt.size(); ++j)
{
std::cout << "vecInt[" << i << "][" << j << "] = " << pdw -> vecInt[i][j] << " \t";
}
std::cout << "vecInt[i] " << pdw->vecInt[i].size() << " " << "vecInt " << pdw->vecInt.size();
std::cout << std::endl;
}
std::cout << std::endl;
}