C++基础 —— (11)C++14 vector
»
    vector,向量,在C++中,vector的定义是一个可以变维数的向量。在实际使用中,vector就类似于一个可变长度的数组。vector是一个模板类,元素的数据类型可以是int也可以是double,也可以是float,也可以是自定义的类。vector只在删除头部元素与增长空间时需要做数据的挪动。

    下面是vector与C++标准算法库中transform(按维度依次调用)的使用的一个例子:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
    vector<double> speedPerSecond{5.0,2.0,3.0};//三维向量
    vector<double> fiveSeconds{5.0,5.0,5.0};//挨个乘的乘数
    vector<double> goRoute{0.0,0.0,0.0};//经过的路径
    vector<double> originalPosition{1.0,1.0,1.0};//原始坐标
    vector<double> lastPosition{0.0,0.0,0.0};//最后坐标
    // 以下,为了在正版C-Lion中标亮注释而使用 TODO注释 和 FIXME注释

    // TODO 使用 std::transform 按维度依次挨个调用C++标准模板库中的乘法std::multiplies
    // TODO 注意First2的vector的长度一定要大于等于First1
    std::transform(speedPerSecond.begin(), speedPerSecond.end(), fiveSeconds.begin(), goRoute.begin(),std::multiplies<>());
    std::cout<<"multiplies result:::";
    for(auto r:goRoute){
        std::cout<<" "<<r;
    }
    std::cout<<endl;

    // TODO 使用 std::transform 按维度依次挨个调用C++标准模板库中的加法std::plus
    // TODO 注意First2的vector的长度一定要大于等于First1
    std::transform(originalPosition.begin(),originalPosition.end(),goRoute.begin(),lastPosition.begin(),std::plus<>());
    std::cout<<"plus result:::";
    for(auto r:lastPosition){
        std::cout<<" "<<r;
    }
    std::cout<<endl;
}

打印结果:
multiplies result::: 25 10 15//两个向量按维度依次挨个乘的结果
plus result::: 26 11 16//两个向量按维度依次挨个累加的结果
«
——张人杰·www.v-signon.com学习者共勉
返回上一页
备案号:京ICP备19038994号-2
个人作品网站:www.up-task.com 主办:个人 English
网站内容如有侵权,请联系删除:1307776259@qq.com