vector<vector<float> >的使用方法有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector<vector<float> >的使用方法有哪些?相关的知识,希望对你有一定的参考价值。

急啊!容器的容器怎么用啊?比如它的初始化.现在它就相当于一个二维数组.增加或删除它的行或列又该怎么操作? 我一直就没搜到相关东东

先谢过~~

在c++中,vector是一个十分有用的容器。作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。

使用vector需要注意以下几点:

1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;

2、Vector作为函数的参数或者返回值时,需要注意它的写法:double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少。

扩展资料

vector的基本操作:

(1)头文件#include<vector>

(2)创建vector对象,vector<int> vec;

(3)尾部插入数字:vec.push_back(a);

(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

(5)使用迭代器访问元素

vector<int>::iterator it;

for(it=vec.begin();it!=vec.end();it++)

cout<<*it<<endl;

(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开始。

参考技术A 给你一个例子,没有注释的,但运行后你就应该知道怎么用了:
#include<vector>
#include <iostream>
using namespace std;
void main()

vector<float> vf0;
vf0.push_back( 1.0 );
vf0.push_back( 1.1 );
vector<float> vf1;
vf1.push_back( 2.0 );
vf1.push_back( 2.1 );

vector<vector<float> > vff;
vff.push_back(vf0);
vff.push_back(vf1);

for ( int i = 0; i < vff.size(); i++)

for ( int j = 0; j < vff[i].size(); j++)

cout << "vff[" << i << "][" << j << "] = " << vff[i][j] << endl;


本回答被提问者采纳
参考技术B 下面是我给你写的一个例子
在Linux下面g++编译 运行结果是这样的:
root@ubuntu:~/workspaces/temp# g++ -o cplus cplus.cc
root@ubuntu:~/workspaces/temp# ./cplus
10
11
结果通过
注意 vector< vector<float> > 第一个<>中的vector<float>前后
要有空格
//##############################################
#include <vector>
#include <iostream>
using namespace std;

int main(void)

vector< vector<float> > vfs;
vector<float> vs ;
vs.push_back(10.0);
vs.push_back(11.0);

cout<<vs[0]<<endl;

vfs.push_back(vs);

vector<float> vs_ref = vfs[0];

cout<<vs_ref[1]<<endl;

return 0;
参考技术C 给你一个例子,没有注释的,但运行后你就应该知道怎么用了:
#include
#include
using
namespace
std;
void
main()

vector
vf0;
vf0.push_back(
1.0
);
vf0.push_back(
1.1
);
vector
vf1;
vf1.push_back(
2.0
);
vf1.push_back(
2.1
);
vector
>
vff;
vff.push_back(vf0);
vff.push_back(vf1);
for
(
int
i
=
0;
i
<
vff.size();
i++)

for
(
int
j
=
0;
j
<
vff[i].size();
j++)

cout
<<
"vff["
<<
i
<<
"]["
<<
j
<<
"]
=
"
<<
vff[i][j]
<<
endl;


参考技术D 取vector
a的第3个元素:auto
p
=
a[2];
//得到一个pair
取pair的第二个元素:int
i
=
p.second;
结合一下:int
i
=
a[2].second;

以上是关于vector<vector<float> >的使用方法有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

从 vector<float> 切换到 vector<short> 时出错

在 C++ 中将 vector<Rect> OpenCV 转换为 vector<vector<float>>

如何在 .NET 中将 Vector128<float> 转换为 Vector128<int>?

如何使用 Eigen 从 vector<vector<float>> 创建矩阵? [复制]

将 Vector<float> 中的数据复制到 Vector<Mat> (Opencv/C++)

如何将 std::vector<float> 转换为浮点数组? [复制]