vector<vector<string>> 与vector<vector<string> >区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector<vector<string>> 与vector<vector<string> >区别相关的知识,希望对你有一定的参考价值。
CSDN的一篇文章。请问这两个哪里不一样了,我个人也是做过汇编和C的,Cpp的东西都还算熟,我就不知道加个空格就有啥不一样了,啊?!感觉作者吹牛瞎扯呢吧。
原文地址:
http://m.blog.csdn.net/vdust/article/details/2284712
string a[100] 与 vector a类似, 前者100string元素维数组, 者维态数组.
Installed System Memory 系统内存:该选项显示系统中所装内存的大小及型号追问
我知道数组和vector的区别,但是和这里没有关系吧,你去读那篇博客原文,上下文也没关系吧。
我是有怀疑原文作者可能以为不加空格编译器会误以为是操作符“>>”,但是明显操作符不可能出现在那种地方啊,一般IDE和编译器都没那么傻。
如果不知道,就请不要随意复制粘贴误导网友。
将 Mat 转换为 <vector<vector>> C++
【中文标题】将 Mat 转换为 <vector<vector>> C++【英文标题】:Convert Mat to <vector<vector>> C++ 【发布时间】:2013-11-19 11:33:47 【问题描述】:如何在 C++ 中将 Mat 转换为 2d 向量(向量的向量)? 我试过了,但 Mat.at 函数出错了。
vector<vector<double>> dctm(300, vector<double>(300,0));
for (int i = 0; i < 300; i++)
for (int j = 0; j < 300; j++)
dctm[i][j] = img.at<double>(i, j);
【问题讨论】:
XY.exe 中 0x7690c41f 处未处理的异常:Microsoft C++ 异常:cv::Exception at memory location 0x012aecb8.. /mat.hpp:537: error: (-215) dims ::channels) > ((DataType<_tp>::depth ) & ((1 ,std::allocator您可以通过迭代值并逐个推送它们来填充向量,但通常这不是一种好的做法。更好的解决方案是使用 stl 提供给您的范围函数。这不仅适用于矢量,也适用于任何其他 stl 结构。
更清洁(从 stl 的角度来看)和更快的解决方案应该是这样的:
for(int i=0; i<300; i++)
Mat r = img.row(i);
dctm.push_back(vector<double>(r.begin<unsigned char>(), r.end<unsigned char>()));
【讨论】:
【参考方案2】:更快的方法是
vector<vector<double>> dctm(300, vector<double>(300,0));
for (int i = 0; i < 300; i++)
uchar *rowPtr = img.ptr<uchar>(i);
for (int j = 0; j < 300; j++)
dctm[i][j] = *rowPtr[j];
见How to scan images, lookup tables and time measurement with OpenCV
【讨论】:
以上是关于vector<vector<string>> 与vector<vector<string> >区别的主要内容,如果未能解决你的问题,请参考以下文章
CUDA[4] sample program: matrix-vector multiplication
处理 vector<vector<float>> 的 size() 时,vector<vector<float>>::size_type 还是 vect