Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;使用变换(绑定)分割数字_C++_Transform_Bind_Divide - Fatal编程技术网

C++ C++;使用变换(绑定)分割数字

C++ C++;使用变换(绑定)分割数字,c++,transform,bind,divide,C++,Transform,Bind,Divide,如何使用transform将数字列表除以2?我原以为这段代码可以做到,但它只将整个列表中的数字1除以2,所以我肯定完全理解错了。有人能帮我吗?:) 列表v(5,1); 名单d; d、 调整大小(v.size()); 转换(v.begin(),v.end(),d.begin(),bind(divides(),占位符::_1,2)); 库特 在您的示例中,没有理由使用向量上的列表 除非您绑定到C++98,否则您可以执行转换(…,…,[](T&val){val/=2;}) std::cin.igno

如何使用transform将数字列表除以2?我原以为这段代码可以做到,但它只将整个列表中的数字1除以2,所以我肯定完全理解错了。有人能帮我吗?:)

列表v(5,1);
名单d;
d、 调整大小(v.size());
转换(v.begin(),v.end(),d.begin(),bind(divides(),占位符::_1,2));
库特
  • 在您的示例中,没有理由使用向量上的列表
  • 除非您绑定到C++98,否则您可以执行
    转换(…,…,[](T&val){val/=2;})
  • std::cin.ignore()
    类似于
    系统(“暂停”)但与平台无关

  • 那么,您可以用五个元素初始化列表
    v
    ,所有元素都是整数
    1
    。那么你还期望什么呢?好吧,我错了,我想我认为占位符::_1是一个常数(我在某处读到,_1代替了x,但我一定理解错了)。那么,我能做些什么来改变这一点,我想我需要的不是placehoders<代码>占位符::_1
    是第一个参数的占位符,您正确使用了它。我说的是变量
    v
    的构造,它是五个
    1
    的列表。如果您打印出列表
    v
    ,您将看到它都是
    1
    。因此,结果当然是所有分区都是
    1/2
    。问题不在于如何使用
    transform
    bind
    或诸如此类的东西,而在于源数据。哈哈,对不起,我太累了。我不知道我为什么那样做。那当然不行。有时候我真是太蠢了!谢谢
    list<T> v(5, 1);
    list<T> d;
    d.resize(v.size());
    
    transform(v.begin(), v.end(), d.begin(), bind(divides<T>(), placeholders::_1, 2));
    cout << fixed << setprecision(2);
    for (list<T>::iterator i = d.begin(); i != d.end(); i++){
        std::cout << *i << endl;
    }
    system("pause");