相关疑难解决方法(0)

C++中的异常是否真的很慢

我正在观看C++中的系统错误处理 - Andrei Alexandrescu他声称这Exceptions in C++非常非常慢.

我想知道这是否仍然适用 C++98

c++

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

使用throw来替换C++非void函数中的return

在C++函数中,returnthrow?替换是一个好习惯吗?例如,我有以下代码

// return indices of two numbers whose sum is equal to target
vector<int> twoSum(vector<int>& nums, int target) {
    for(int i=0; i<nums.size()-1; ++i)
        for(int j=i+1; j<nums.size(); ++j)
        {
            if(nums[i] + nums[j] == target) return vector<int>{i, j};
        }
    // return vector<int>{};
    throw "no solution";
}
Run Code Online (Sandbox Code Playgroud)

上面的代码用我的GCC 7.2编译.

c++ exception-handling

47
推荐指数
9
解决办法
4062
查看次数

根据数据返回不同的数据类型(C++)

反正有没有做过这样的事情?

(correct pointer datatype) returnPointer(void* ptr, int depth)
{

    if(depth == 8)
        return (uint8*)ptr;
    else if (depth == 16)
        return (uint16*)ptr;
    else
        return (uint32*)ptr;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ return-value

9
推荐指数
2
解决办法
2万
查看次数

能够返回不同类型的功能?

我试图在c ++中创建一个函数,我想知道我是否可以创建它,以便它能够返回不同类型的向量.例如,基于不同的情况,它返回矢量字符串,int,double或......任何东西.在c ++中有可能吗?(我不想使用具有不同arg(S)和不同返回的重载函数)我对C++很新,我的问题可能看起来很愚蠢.

这是我的一段代码:

//零在这里意味着交集

std::vector<??????> findZeros(const mesh::Region& s, char *model) const
{
//Point  
  if( model == "point" )
  {
    std::vector<Vertex> zeros;
    for(Region::pointIterator it = s.beginPoint(); itv != s.endPoint(); ++itv )
    {
      if( abs(Val(*it)) < 1.e-12 )      
      zeros.push_back(*it);
    }
    std::vector<point> zerosP(zeros.begin(), zeros.end());
    return zerosP;
  }
 //line
  else if (EntityS == "line")
  {
    std::vector<line> zerosE;
    std::vector<Point&> PointE;
    for(Region::lineIterator ite = s.beginLine(); ite != s.endLine(); ++ite )
    {
      Line ed = *ite;
        Point P0 = ed.point(0);
        Point P1 = e.point(1);
        if( ......... …
Run Code Online (Sandbox Code Playgroud)

c++

9
推荐指数
3
解决办法
6958
查看次数

标签 统计

c++ ×4

exception-handling ×1

return-value ×1