小编Shi*_*bli的帖子

使用"at"或[]安全地访问std :: vector的成员

我有一个阵列

arr[10]
Run Code Online (Sandbox Code Playgroud)

它试图访问

arr[12]
Run Code Online (Sandbox Code Playgroud)

直到我意识到我切换到向量时,程序才做任何事情.在某处我读到如果我使用[]那么程序不会再给出任何运行时错误,所以我应该使用std::vector's at.但在我刚刚使用的程序中[],它帮助我发现了问题.看来[]已经足够了.我对吗?此外,是否有任何绑定检查阵列的安全性?

c++ arrays vector

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

std::array、std::vector 和原始数组的大小

让我们有,

std::array <int,5> STDarr;
std::vector <int> VEC(5);
int RAWarr[5];
Run Code Online (Sandbox Code Playgroud)

我试图得到它们的大小,

std::cout << sizeof(STDarr) + sizeof(int) * STDarr.max_size() << std::endl;
std::cout << sizeof(VEC) + sizeof(int) * VEC.capacity() << std::endl;
std::cout << sizeof(RAWarr) << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出是,

40
20
40
Run Code Online (Sandbox Code Playgroud)

这些计算正确吗?考虑到我没有足够的内存std::vector并且无法逃避动态分配,我应该使用什么?如果我知道这会std::array导致内存需求降低,我可以更改程序以使数组静态。

c++ arrays vector

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

".RestoreDirectory"不起作用

在下面的代码我设置ofd1.RestoreDirectoryfalse不过,该对话框打开inital目录每次.有什么东西我不知道吗?

private void btnMeshFile_Click(object sender, EventArgs e)
{
    OpenFileDialog ofd1 = new OpenFileDialog();
    ofd1.Title = "Open";
    ofd1.InitialDirectory = @"c:\";
    ofd1.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
    ofd1.FilterIndex = 2;
    ofd1.RestoreDirectory = false;
    if (ofd1.ShowDialog() == DialogResult.OK)
    {
        string fileName = Path.GetFileName(ofd1.FileName);
        MeshDirectoryPath = Path.GetFullPath(ofd1.FileName).Replace(@"\", @"\\");
        txtMeshFile.Text = fileName;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# fileopendialog

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

显着位数增加

让我们,

float dt;
Run Code Online (Sandbox Code Playgroud)

dt从一个文本文件中读取

inputFile >> dt;
Run Code Online (Sandbox Code Playgroud)

然后我有一个for循环,因为,

for (float time=dt; time<=maxTime; time+=dt)
{
    // some stuff
}
Run Code Online (Sandbox Code Playgroud)

什么时候dt=0.05输出std::cout << time << std::endl;我得到的,

0.05
0.10
...
7.00001
7.05001
...
Run Code Online (Sandbox Code Playgroud)

那么,为什么一段时间后数字会增加?

c++ significant-digits

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

恢复由reserve()分配的内存

让我们

std::vector myVec;
myVec.reserve(10);
Run Code Online (Sandbox Code Playgroud)

如果我只分配了5个元素,我怎样才能重新获得为其他5个元素分配的内存?

c++ stdvector

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

C#为什么我可以在常量上调用对象扩展方法?

在C#中为什么我可以打电话

var intStr = 1.ToString();
var strStr = "1".ToString();
Run Code Online (Sandbox Code Playgroud)

1和"1"是常量文字,为什么object.ToString()不导致错误?

.net c#

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

常量reference_wrapper

在下面的代码中,目标是具有reference_wrapper<int> b这样一种特性,即当a更改时b也会更改,但是不允许相反,也就是说,a更改时不应b更改。我尝试了两种方法:第7行和第8行。第7行导致编译器抱怨它无法从第8行编译时毫无问题地转换为intconst int但是结果却不是我想要的(a更改时b更改了)。任何的想法?

1.  #include <iostream>
2.  #include <functional>
3.  using namespace std;
4.  
5.  int main() {
6.      int a = 1;
7.      //reference_wrapper<const int> b = ref(a);
8.      //const reference_wrapper<int> b = ref(a);
9.  return 0;
10. }
Run Code Online (Sandbox Code Playgroud)

c++ const c++11 reference-wrapper

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

由于时间限制,作业意外取消

我工作的集群上有几个分区。随着sinfo我可以看到每个分区的时间限制。我把我的代码放在mid1有时间限制的分区上8-00:00:00,我知道时间限制是 8 天。我不得不等待,1-15:23:41这意味着将近 1 天 15 小时。但是,我的代码仅运行了00:02:24近 2.5 分钟(并且解决方案正在收敛)。另外,我没有在提交的文件中设置时间限制sbatch我的代码停止的原因如下:

 JOB 3216125 CANCELLED AT 2015-12-19T04:22:04 DUE TO TIME LIMIT
Run Code Online (Sandbox Code Playgroud)

那么,如果我没有超过时间限制,为什么我的代码被停止了?我向负责集群的人提出了这个问题,但他们没有回来。

time limit slurm

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

php_oci8_12c.dll - 找不到指定的模块

我使用的是 Windows 7 和 php5.6。

php_oci8_12c.dll存在,但我找不到它。其他模块正常。

错误日志:

PHP 警告:PHP 启动:无法加载动态库 'C:/Server/bin/ext\php_oci8_12c.dll' - 找不到指定的模块。\r\n 在第 0 行的未知中

php oracle-call-interface

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

WPF中的事件处理

btn_Edit窗口中有一个按钮.单击该按钮时,将打开一个新窗口(new_win),并在按钮(btn_OK)上添加一个单击事件new_win.似乎btn_OK_Click不起作用因为new_win没有关闭.问题出在哪儿?

    BC_edit new_win = new BC_edit();

    private void btn_Edit_Click(object sender, RoutedEventArgs e)
    {            
        new_win.Title = "a_title";
        new_win.ShowDialog();

        new_win.btn_OK.Click += new RoutedEventHandler(btn_OK_Click);            
    }

    private void btn_OK_Click(object sender, RoutedEventArgs e)
    {
        _MyCollection.Add(new MyData
        {
            Boundary = new_win.Title,
            Type = new_win.cmb_BC_edit_type.SelectedItem.ToString(),
            Option = new_win.cmb_BC_edit_options.SelectedItem.ToString()
        });

        new_win.Close();
    }
Run Code Online (Sandbox Code Playgroud)

c# wpf event-handling

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