小编Kyl*_*leL的帖子

如何逐步运行Perl程序?

我有一个别人写的perl程序.当我运行它时,它默默地退出而不向日志文件写入任何内容.有没有办法我可以逐步运行这个Perl程序,由解释器逐行运行,从而看到它终止的位置?

debugging perl

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

对连续整数块求和的 C++ 算法

给定一个块大小N和一个长度整数向量k * N(可以将其视为k整数块)N,我想创建一个新的长度向量,k其元素是原始向量块的总和。

例如,块大小为 2,向量{1,2,3,4,5,6}将给出结果{3,7,11}

例如,块大小为 3,向量{0,0,0,1,1,1}将给出结果{0,3}

一个简单有效的方法:

std::vector<int> sum_blocks(int block_size, const std::vector<int>& input){
    std::vector<int> ret(input.size() / block_size, 0);

    for (unsigned int i = 0; i < ret.size(); ++i)
    {
        for(unsigned int j=0; j < block_size; ++j)
        ret[i] += input[block_size * i + j];
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

不过,我有兴趣知道是否有更简洁或更有效的方法来执行此操作,可能使用该algorithm库。

c++

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

使用迭代器将int值分配给vector

我坐在C ++ Primer(3.23)上的一个小练习上将近2天。我尝试了多种方法来为分配值vector<int>。到目前为止,我将为您提供一个实际的练习和代码,但这完全是错误的。我做了很多研究,但没有发现任何用处。

编写一个程序来创建一个vector包含10个int元素的。使用迭代器,为每个元素分配一个为其当前值两倍的值。通过打印测试程序vector

这是我的代码

int main(){  
vector<int> num(10);

for (auto it=num.begin();it != num.end() ;++it)//iterating through each element in vector 
{
    *it=2;//assign value to vector using iterator
    for (auto n=num.begin() ;n!=num.end();++n)//Iterating through existing elements in vector 
    {   
        *it+=*n;// Compound of elements from the first loop and 2 loop iteration
    }    
    cout<<*it<<" ";
}

keep_window_open("~");
return 0;
}  
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何使用迭代器int为每个vector元素分配值(我为1分配了五个元素,但没有给五个元素分配值)!此外,我在如何使用中的10个元素来完成此练习时大吃一惊vector,因为每个元素必须具有不同的值,并且迭代器必须执行赋值。
感谢您的时间。

c++ iterator

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

使用对 std::set 键的引用来擦除自身是否有任何问题?

考虑下面的代码

std::set<int> int_set = {1, 2, 3, 4};

for(const auto& key : int_set)
{
    if(key == 2)
    {
        int_set.erase(key);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

代码按预期运行,但是安全吗?

使用对键的引用来从集合中删除自身感觉是错误的,因为大概一旦发生删除,引用就不再有效。

具有相同潜在问题的另一个代码片段是

std::set<int> int_set = {1, 2, 3, 4};
const auto& key  = *int_set.find(2);
int_set.erase(k);
Run Code Online (Sandbox Code Playgroud)

c++

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

如何在c ++中获取unicode字符的十进制值

对于我的一个开源项目,我需要计算给定unicode字符的十进制等效值.

例如,如果L'?'给出泰米尔语字符,则输出应为2949.

我在Qt环境中使用c ++.我用谷歌搜索,无法找到解决方案.如果您知道解决方案,请提供帮助.

c++ unicode qt4

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

如何在C++的一行中使用多个整数,而不知道会输入多少?

我正在使用cin >> x[0] >> x[1] >> x[2] >> x[3];等获取输入,例如:

1 2 3 4.

但我的问题是,可能有3个不同的数字(例如,1,2和3)到20个不同的数字,我不知道预先有多少.因为用户最多可以输入20个数字,所以我重复了上面的模式,直到x [19].我发现程序不会继续,直到它为这些值中的每一个都有一个输入.

c++ cin

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

为什么它会给出错误"分段错误"?

我想在不同的内存位置输入两个字符串,但在第一次输入后,它显示错误"分段错误(核心转储").我没有弄清楚这段代码有什么问题.

#include <stdio.h>
#include<iostream>
using namespace std;

int main()
{
    char *str;
    int i;
    scanf("%s",str+0);
    scanf("%s",str+1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我只接受一个输入时它工作正常.

#include <stdio.h>
#include<iostream>
using namespace std;

int main()
{
    char *str;
    int i;
    scanf("%s",str+0);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

c segmentation-fault char-pointer

-4
推荐指数
1
解决办法
90
查看次数

标签 统计

c++ ×5

c ×1

char-pointer ×1

cin ×1

debugging ×1

iterator ×1

perl ×1

qt4 ×1

segmentation-fault ×1

unicode ×1