小编Waw*_*100的帖子

在C++中将变量名转换为字符串

我想将一些数据输出到文件中.例如假设我有两个双打向量:

vector<double> data1(10);
vector<double> data2(10); 
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法将其输出到文件,以便第一行包含标题'data1'和'data2',后跟实际内容.输出数据的函数将传递各种不同的数组,因此不可能硬编码标题的名称 - 理想情况下,我想将变量名称转换为某个字符串,然后输出该字符串,后跟向量数组的内容.但是,我不确定如何将变量名'data1'转换为字符串,或者确实如果它可以很容易地完成(从阅读论坛我的猜测是不可以)如果这是不可能的替代可能是使用关联容器(如map)或更简单的"对"容器.

pair<vector<double>,string> data1(10,'data1');  
Run Code Online (Sandbox Code Playgroud)

欢迎大家提出意见!

c++ string variables map std-pair

24
推荐指数
3
解决办法
4万
查看次数

STL count_if的标准谓词

我正在使用STL函数count_if来计算双精度矢量中的所有正值.例如,我的代码是这样的:

 vector<double> Array(1,1.0)

 Array.push_back(-1.0);
 Array.push_back(1.0);  

 cout << count_if(Array.begin(), Array.end(), isPositive);
Run Code Online (Sandbox Code Playgroud)

其中函数isPositive定义为

 bool isPositive(double x) 
 {
     return (x>0); 
 }
Run Code Online (Sandbox Code Playgroud)

下面的代码将返回2.有没有办法在不写我自己的函数isPositive的情况下执行上述操作?我可以使用内置功能吗?

谢谢!

c++ stl vector

12
推荐指数
3
解决办法
5057
查看次数

如何计算C++中双精度向量的累积和?

我有一个双打矢量,我需要创建另一个数组,它是第一个元素的累积和.例如;

 vector<double> Array(10,1);
 vector<double> Sum(10);  

 Sum[0] = Array[0]; 
 for(unsigned int i=1; i<Array.size(); i++)
     Sum[i] = Sum[i-1] + Array[i]; 
Run Code Online (Sandbox Code Playgroud)

是否有内置函数可以执行上述累积和?

c++ vector cumulative-sum

12
推荐指数
1
解决办法
1万
查看次数

在C++中读取csv文件时如何处理NaN

我正在将时序数据的csv文件读入C++程序.然而,我的数据包含一些NaN.例如:

1-Jul-2010,   1.0 
2-Jul-2010,   2.0
3-Jul-2010,   NaN
4-Jul-2010,   3.0
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我在Matlab中编写了一个简短的脚本,将所有NaN替换为0.0 - 然后在没有NaN的情况下读入新文件.有简单的方法还是避免这种预处理?

谢谢!

c++ csv file-io nan

3
推荐指数
1
解决办法
2831
查看次数

结合字符串的向量

我有许多字符串向量,每个字符串包含日期.作为一个简单的例子,大小为2的向量A可能包含:

A[0] = "01-Jul-2010"; 
A[1] = "03-Jul-2010";
Run Code Online (Sandbox Code Playgroud)

而第3个大小为3的向量B可能包含:

B[0] = "02-Jul-2010";
B[1] = "03-Jul-2010"; 
B[2] = "04-Jul-2010";  
Run Code Online (Sandbox Code Playgroud)

我想形成一个向量C,其中包含A和B中元素的"联合":

C[0] = "01-Jul-2010";
C[1] = "02-Jul-2010";
C[2] = "03-Jul-2010";
C[3] = "04-Jul-2010"; 
Run Code Online (Sandbox Code Playgroud)

当组合A和BI时,不需要任何重复日期,因此C的每个元素必须是唯一的.是否有我可以调用的内置/ stl(或Boost库)函数可以执行此操作?

谢谢!

c++ string vector

3
推荐指数
1
解决办法
233
查看次数

执行矢量运算

我正在使用向量容器来存储双精度数组.有没有快速的方法将我的向量中的每个元素乘以一些标量而不使用循环.

例如:

  vector<double> Array(10,1);
Run Code Online (Sandbox Code Playgroud)

将使用初始值1初始化10个双精度数组.要将此数组乘以0.5,我会写:

  for(unsigned int i=0; i<Array.size(); i++) 
     Array[i] = 0.5*Array[i]; 
Run Code Online (Sandbox Code Playgroud)

那还有另一种方式吗?我使用了重载'*'运算符的valarray,以便:

     Array = 0.5 * Array; 
Run Code Online (Sandbox Code Playgroud)

是有效的,但我宁愿不使用valarray,因为它似乎是一个更标准的操作数组的方法.

谢谢!

c++ vector

2
推荐指数
1
解决办法
7407
查看次数

用C++复制字符串数组

我有一个string类型的变量数组.就像是:

std::string Array1[3] = {"A","B","C"}; 
Run Code Online (Sandbox Code Playgroud)

我想将这个数组的内容复制到另一个数组中:

std::string Array2[3]; 
Run Code Online (Sandbox Code Playgroud)

目前我使用循环来做到这一点.有没有更简单/替代的方式?如果我按如下方式声明和初始化变量:

if( ... check some condition ... ) 
{
    .
    .
    std::string Array1[3] = {"A","B","C"}; 
}  
Run Code Online (Sandbox Code Playgroud)

一旦离开if语句的范围,它显然会被销毁.有没有办法避免这种情况,以便以后可以在函数中使用它.理想情况下,我想避免声明变量Array1 global.

谢谢

c++ arrays string

2
推荐指数
1
解决办法
8028
查看次数

在双精度矢量数组中导致零的问题

我想计算双精度矢量的标准差(称为A).现在我有一个名为StDev的函数可以执行此操作.但是,向量A的前几个元素为零,我需要删除它们.为此,我创建一个子数组,然后将其传递给我的StDev函数,如下所示:

 std::vector<double> Array(find_if(Data.begin(), Data.end(), std::bind1st (std::not_equal_to<double>(), 0.0)), Data.end());     

 double standard_deviation = StDev(Array); 
Run Code Online (Sandbox Code Playgroud)

有没有办法这样做而不必创建仅使用一次的矢量'Array'.我可以以某种方式直接传递所需的子数组吗?

谢谢!

c++ stl vector

1
推荐指数
1
解决办法
315
查看次数

矢量的平方根和平方在C++中加倍

我想计算双精度矢量的平方和平方根.例如给出:

 vector<double> Array1(10,2.0); 
 vector<double> Array2(10,2.0); 

 for(unsigned int i=0; i<Array1.size(); i++)
     Array1[i] = sqrt(Array1[i]);

 for(unsigned int i=0; i<Array2.size(); i++)
     Array2[i] = Array2[i] * Array2[i]; 
Run Code Online (Sandbox Code Playgroud)

有没有办法使用STL函数,如变换?也许有一个内置的sqrt函数作用于数组?

c++ stl vector exponent square-root

0
推荐指数
1
解决办法
6585
查看次数

标签 统计

c++ ×9

vector ×6

stl ×3

string ×3

arrays ×1

csv ×1

cumulative-sum ×1

exponent ×1

file-io ×1

map ×1

nan ×1

square-root ×1

std-pair ×1

variables ×1