c++里面的2维向量是啥意思????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++里面的2维向量是啥意思????相关的知识,希望对你有一定的参考价值。

我看到有段代码是在main函数直接写 vector<int> s;定义s向量时可以不声明它的元素个数吗?比如这样 vector<int> s(10)。

另外我看到定义函数时这样写
void swap(vector<int>& a,vector<int>& b)
vector<int> temp=a;a=b;b=temp; 这里的vector<int>& a是声明意思?&不是取址符吗?为什么定义时要加上&?

最后求2维向量的解释。。。

找本C++的书来看。

LZ犯了一个很明显的错误:把C++当C来看。其实二者差很多,要用全新的思维来学习。

void swap(vector<int>& a,vector<int>& b)
这个地方的&是引用声明。不是求地址。
表明传入的参数是按地址传递,而不是按值传递。

向量就是一个封装得很好的数组容器。
至于vector是什么,怎么用,找本介绍STL的书看看吧。

学C++至少要搞懂这些:
1、OOP
2、泛型编程
3、函数/操作符重载

(这也是其和C区别最大的地方,特别是前两项,几乎可以颠覆你在学C中打下的思想基础)
参考技术A 定义vector容器时当然可以不声明它的元素个数!

vector<int> & 表示这是一个引用,就像C语言中的指针变量差不多,也可以在swap()函数中改变传入的实参值。但是引用比指针更安全。

所以2维vector就像二维数组一样,事实上,你完全可以像理解二维数组那样理解2维vector.
参考技术B 可以不声明向量的个数,但只能用push_back()一个一个添加数据.
void swap(vector<int>& a,vector<int>& b) 的& 在这不是取地址 是C++里的一种传值方式(传引用) 当待传递的变量为复杂数据类型时它的效率比传值高,因为它不需调用构造函数.

2维向量 就像2维数组

“通过向量的最大值对向量进行归一化”是啥意思?

【中文标题】“通过向量的最大值对向量进行归一化”是啥意思?【英文标题】:What does it mean that " normalize a vector by the maximal value of it"?“通过向量的最大值对向量进行归一化”是什么意思? 【发布时间】:2015-03-07 07:21:37 【问题描述】:

假设有一个向量 H ,剂量“通过它的最大值对向量进行归一化”意味着 H/max(H)? H 中的每个元素除以 H 的最大值?

【问题讨论】:

【参考方案1】:

您将向量的每个元素除以向量的最大值,这样如果存在负值,每个值都落在[0, 1][-1, 1] 范围内。它通常用于与统计相关的东西。

你是对的,它是H / max(H),如果你要处理超过 1 个维度(如二维数组),它是 H / max(H(:))

编辑:正如 MHH 在 cmets 中指出的那样,如果您的任何值为负数,则除以 max(abs(H))

【讨论】:

这是假设所有值都是正数。如果向量有负值,通常你会做 H/max(abs(H)) 如果向量全为零或恰好包含InfNaN,请小心。 感谢您的回答,真的很有帮助! 为了避免0/0(如果整个向量为零),最好是(H/(max(abs(H))+eps)) @ParagSChandakkar:这可行,但我认为没有必要在某些情况下引入小的数值偏差,以便能够将所有内容放在一行代码中。我认为更好的方法是:v=H/max(abs(H(:)));v(isnan(v))=0;。如果向量包含Inf,您可能仍然需要一个案例 - 并根据无穷大表示的内容确定在这种情况下您希望如何规范化。

以上是关于c++里面的2维向量是啥意思????的主要内容,如果未能解决你的问题,请参考以下文章

统计学中的自由度是啥意思

中断向量是啥意思

创建具有可变维数的 C++ 向量

matlab里repmat(1:10,40,1)是啥意思

残差是啥意思?

“通过向量的最大值对向量进行归一化”是啥意思?