栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

stl的vector容器-n维向量的点积

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

stl的vector容器-n维向量的点积

C++的STL中的vector是一个动态数组,可以表示多维向量(一般平面二维向量对应的vector的size为2,三维对应的size为3), 求向量v的笛卡尔长度则为v点乘v自己的开平方根。

#include 
#include 
#include 

bool vetor_dot_mul(const std::vector& a, const std::vector& b, int n, double& res)
{
	if (a.size() != n || b.size() != n)
	{
		return false;
	}

	res = 0.0;
	for (int i = 0; i < n; i++)
	{
		double m = a[i] * b[i];
		res += m;
	}
}

double vector_length(const std::vector& a)
{
	double s = 0.0;
	vetor_dot_mul(a, a, a.size(), s);
	return sqrt(s);
}

int main()
{
	std::vector v0;
	v0.push_back(1.0); //[1.0]
	v0.push_back(1.2); //[1.0,1.2]
	v0.push_back(1.3); //[1.0,1.2,1.3]
	v0.push_back(1.4); //[1.0,1.2,1.3,1.4]

	std::vector v1 = {1.0,1.0,1.0,1.0};

	double v4dotmul = 0.0;
	vetor_dot_mul(v0, v1, 4, v4dotmul);
	
	std::cout << "R(4) vector dot mul: a*b = " << v4dotmul << std::endl;

	system("pause");

	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号