小编Mon*_*ldo的帖子

如何在该引用超出范围后检测ptr是否仍引用有效引用

我正在玩弄溪流一点点,无法理解下面的内容.

这里我们有一个基本的ostream ptr,设置为不同的输出流,无论是cout,cerr还是a file.

// ostream ptr
std::ostream* outstream;

// set output ostream
void setOutput(std::ostream & os)
{
  outstream = &os; 
}

// write message to ostream
void writeData(const std::string & msg)
{    
  *outstream << msg << '\n';
}

int main (int argc, char * const argv[]) 
{
  // init to std out
  setOutput(std::cout);
  writeData("message to cout");

  setOutput(std::cerr);
  writeData("message to cerr");

  std::ofstream fileout("test.txt", std::ofstream::out | std::ofstream::app);
  setOutput(fileout);
  writeData("message to file");
  //fileout.close();

  setOutput(std::cout);
  writeData("message2 to cout"); …
Run Code Online (Sandbox Code Playgroud)

c++ pointers iostream ostream

14
推荐指数
3
解决办法
980
查看次数

如何从2D initializer_list中读取值并将它们放在2D矢量中

我有一个Matrix类,它必须有一个接受未初始化列表的构造函数.contstructor必须获取值并将它们放在2D矢量,矩阵中.

这是我的2D矢量.

vector<vector<double>> d_matrix;
Run Code Online (Sandbox Code Playgroud)

这是我的构造函数.

Matrix::Matrix(initializer_list<initializer_list<int>> list)
{
    d_row = list.size();
    d_col = (*list.begin()).size();

    initMatrix();

    for (size_t r = 0; r < d_row; ++r)
    {
        for (size_t c = 0; c < d_col; ++c)
        {
            /* I need to do something here */
            //d_matrix[r][c] = list.begin() + r) + c);
            //cout << (*list.begin()).;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的init Matrix函数,以初始值开始.

void Matrix::initMatrix()
{
    d_matrix.resize(d_col, vector<double>(d_row, 0)); 
}
Run Code Online (Sandbox Code Playgroud)

这就是我调用构造函数的方式.

Matrix m({ {1, 2, 3},
           {3, 4, 2} }
         );
Run Code Online (Sandbox Code Playgroud)

我设法获得列表的维度(d_row和d_col),但是我仍然试图从列表中提取值,尝试使用插入以及迭代器的开始和结束.未初始化的列表类似乎只有两个迭代器方法和一个size方法.我正在使用命名空间std btw.

问题是,我如何从未初始化的列表中获取值并将它们存储到我称为d_matrix的2D向量中.

c++ stdvector

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

如何创建一个返回传递的参数名称的函数

我正在寻找一种创建命名服务的方法.基本上我需要一个接受任何东西作为参数的函数,并返回给定参数的名称.这可以是任何东西,类,功能,变量等.

std::string name(T t)
{
  if t is a function 
    return __func__ of t

  if t is a variable 
    return name of variable.
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c++ function

0
推荐指数
2
解决办法
77
查看次数

标签 统计

c++ ×3

function ×1

iostream ×1

ostream ×1

pointers ×1

stdvector ×1