【C++学习】valarray函数库

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 做毕设时碰到了最小二乘法的直线拟合问题,发觉C++里有以下这么几个类在做这件事情、以及后续处理时挺不错的,其实用OpenCV的数据结构和方法也可以进行,稍后研究一下。

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

做毕设时碰到了最小二乘法的直线拟合问题,发觉C++里有以下这么几个类在做这件事情、以及后续处理时挺不错的,其实用OpenCV的数据结构和方法也可以进行,稍后研究一下。

valarray 类用法

1. apply 将 valarray 数组的每一个值都用 apply 所接受到的函数进行计算

2. cshift 将 valarray 数组的数据进行循环移动,参数为正者左移为负就右移

3. max 返回 valarray 数组的最大值

4. min 返回 valarray 数组的最小值

5. resize 重新设置 valarray 数组大小,并对其进行初始化

6. shift 将 valarray 数组移动,参数为正者左移,为负者右移,移动后由 0 填充剩余位

7. size 得到数组的大小

8. sum 数组求和

构造函数

valarray( );

explicit valarray(size _ t _Count );

valarray( const Type& _Val , size _ t _Count );

valarray( const Type* _Ptr , size _ t _Count );

valarray( const slice _ array<Type>& _SliceArray );

valarray( const gslice _ array<Type>& _GsliceArray );

valarray( const mask _ array<Type>& _MaskArray );

valarray( const indirect _ array<Type>& _IndArray );

slice 类用法

该类主要配合 valarray 类使用,可以从 valarray 中提取子数组

slice( );

slice( size _ t _StartIndex ,// 截取数组的开始位置

const valarray<size _ t> _Len , // 子数组的最大长度

const valarray<size _ t> _Stride// 相隔多少个元素选中一个

);

用法:

int main( )

{

using namespace std;

int i;

valarray<int> va ( 20 ), vaResult;

for ( i = 0 ; i < 20 ; i+=1 )

va [ i ] = 2 * (i + 1 );

cout << "The operand valarray va is:/n( ";

for ( i = 0 ; i < 20 ; i++ )

cout << va [ i ] << " ";

cout << ")." << endl;

slice vaSlice ( 1 , 7 , 3 );

vaResult = va [ vaSlice ];

cout << "/nThe slice of valarray va is vaResult:"

<< "/nva[slice( 1, 7, 3)] = ( ";

for ( i = 0 ; i < 7 ; i++ )

cout << vaResult [ i ] << " ";

cout << ")." << endl;

}

输出结果:

The operand valarray va is:

( 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 ).

The slice of valarray va is vaResult:

va[slice( 1, 7, 3)] = ( 4 10 16 22 28 34 40 )

Gslice 类用法

Gslice 类的用法和slice 基本相同,只是它截取的是循环子串,当母串进行一次提取后的字串元素数目达不到要求时,gslice 会将提取后的母串继续组合进行提取直到满足要求或者母串被提取完了

公共函数( 对数组的操作)

1.abs 对数组的每一个元素取绝对值

2.acos 返回每个元素的反余弦值

3.asin  返回每个元素的反正弦值

4.atan  返回每个元素的正切值

5.atan2 笛卡尔正切值

6.cos 余弦值

7.cosh  双曲线余弦值

8.exp 返回自然指数E^x

9.log 返回自然对数

10.log10 返回以10 为底的返回自然对数

11.exp 返回x^y

12.sin 正弦值

13.sinh 双曲线正弦值

14.sqrt 开方

15.tan 正切值

16.tanh 反正切值

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
2月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
74 6
|
2月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
108 10
|
2月前
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
|
2月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
2月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
74 5
|
2月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
67 1
|
2月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
61 6
|
2月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
26 0
C++ 多线程之线程管理函数
|
2月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
33 3
|
2月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
263 1