小编Far*_*hid的帖子

为什么我需要明确写出'auto'关键字?

我正在从C++ 98转向C++ 11并熟悉该auto关键字.我想知道为什么我们需要显式声明auto编译器是否能够自动推断出类型.我知道C++是一种强类型语言,这是一个规则但是如果没有明确声明变量就不可能实现相同的结果auto吗?

c++ auto c++11

78
推荐指数
6
解决办法
8624
查看次数

在单词中找到最短的重复循环?

我即将编写一个函数,它将返回一个最短的一组字母,最终会创建给定的单词.

例如字abkebabkebabkeb通过重复创建abkeb字.我想知道,如何有效地分析输入词,以获得创建输入词的最短字符周期.

language-agnostic algorithm pseudocode

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

在SQLite中的一个事务中可以完成多少次插入?

我正在尝试将大量记录(以百万计)插入到SQLite数据库中.从文件流(C++)读入数据.如果我开始一个事务,执行所有插入然后提交事务,我只获得实际插入数据库中的一小部分记录.

插入的内容似乎是随​​机的 - 我无法真正看到任何插入哪些模式以及哪些模式被遗漏.不过,如果我犯再像2000插入后重新开始交易,我没有这个问题,所有的记录被插入,即使这个过程是很多慢.所以...

在一次交易中可以完成多少次插入是否有严格的限制?有没有办法改变这个限制?

sqlite transactions

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

文件系统块大小与磁盘块大小

我正在阅读《Hadoop:权威指南》,然后出现了以下段落。

磁盘具有块大小,这是它可以读取或写入的最小数据量。单个磁盘的文件系统通过处理块中的数据来构建,块是磁盘块大小的整数倍。文件系统块的大小通常为几千字节,而磁盘块的大小通常为 512 字节。

我的理解是磁盘块受硬件限制(每次可以从磁盘读取/写入的数据量)。操作系统创建称为文件系统的抽象,其中它有自己的块大小,该块大小比磁盘块大小大(多倍)。与磁盘类似,操作系统读/写数据的大小为文件系统块大小。对于单个读/写文件系统块,将执行多个磁盘块操作。我的理解正确吗?

filesystems file disk

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

如果我不告诉在c ++中抛出什么类型的对象,throw throw语句会抛出什么?

以下代码异常终止,因为没有显式抛出任何对象.throw语句在以下代码中抛出了什么?

int main()
{
  try{
  cout<<"try";
  throw ;
}
catch(...){
 cout<<"catch";
 }
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling

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

即使对于小型用户定义类型,支持按值传递语句的示例也不是好习惯

我正在阅读 Scott meyers 的《Effective C++》,作者正在比较按值传递和按引用传递。对于用户定义的类型,建议使用按引用传递,对于内置类型,建议使用按值传递。我正在寻找一个示例来解释以下段落,该段落指出即使对于小型用户定义对象,按值传递的成本也可能很高。

\n\n
\n

内置类型很小,因此有些人得出结论,所有小类型\n都是值传递的良好候选者,即使它们\xe2\x80\x99是用户定义的。\n这是不稳定的推理。仅仅因为一个对象很小,\xe2\x80\x99并不意味着\n调用它的复制构造函数是廉价的。许多对象 \xe2\x80\x94 其中大多数\n STL 容器 \xe2\x80\x94 只包含一个指针,但是\n 复制这些对象需要复制它们指向的所有内容。这可能会非常昂贵。

\n
\n

c++ pass-by-reference pass-by-value

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

为什么C++被称为语言联合?

我正在阅读关于C++的教程,并且出现了以下内容.没有提供其他细节进一步解释

C++是一种"语言联盟",支持多范式编程,我们有很多选择.

当C++被称为语言联合以及什么是多范式编程时,它意味着什么?

c++ programming-languages c++11

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

c如何将字符变量与字符串进行比较?

以下代码在C中完全没问题,但在C++中没有.在下面的代码if语句中始终为false.C如何将字符变量与字符串进行比较

int main()
{
  char ch='a';
  if(ch=="a")
    printf("confusion");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c string char

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

accept() 创建一个新的套接字是什么意思?

我的问题是基于以下理解

  • 套接字由 ip:port 定义。服务器和客户端都有自己的套接字
  • Socket 连接由五个元组 server_ip、server_port、client_ip、client_port、protocol 定义
  • 套接字描述符是标识套接字的整数值

我试图实现我自己的服务器,其中 socket() 和 accept() 返回不同的套接字描述符值(是否总是这样?)。我的问题是为什么说如果服务器中没有打开新端口,accept() 会创建一个新套接字,并且 ip:port 对于 socket() 和 accept() 返回的套接字描述符是相同的。如果新套接字是由 accept() 创建的,它与 socket() 创建的套接字有何不同?

sockets linux network-programming client-server

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

如何使用 KMP 失败函数来确定最小长度重复子串?

我想使用 KMP 算法解决UVA 10298 -“电源字符串”问题。在这个博客中,展示了一种技术如何使用失败函数来计算最小长度重复子串。该技术如下:

  1. 计算pi[ ]给定字符串的前缀-后缀表。
  2. len成为字符串长度,并last_in_pi成为存储在pi表的最后一个索引处的值。
  3. 检查是否len % (len - last_in_pi) == 0属实。如果为真,则最小长度重复子串的长度为(len - last_in_pi),否则为给定字符串的长度。

我了解什么是失败函数以及如何使用它在文本中查找模式,但我很难理解这种技术的正确性证明。

algorithm pattern-matching knuth-morris-pratt

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

逐行ID如何在Oracle中运行?

我有一张叫做积分的桌子.我执行了以下查询,并期望一个列表的词典排序列表的ROWID,但没有发生.order by rowid如何对行进行排序?

select rowid from points order by rowid
Run Code Online (Sandbox Code Playgroud)

我有像下面这样的行

  1. AAAE6MAAFAAABiSAAA
  2. AAAE6MAAFAAABi + AAA

第二行的词典比第一行小.那么,如果不是lecxicographical排序,那么排序标准是什么?

sql oracle rowid

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

为什么析构函数不会以相反的顺序调用对象数组?

在C++中以与对象创建相反的顺序调用析构函数,但我不明白为什么不为对象数组维护它.

#include <iostream>
using namespace std;
class test {
    int nmbr;
    static int c;
public:
    test(int j)
    {
        cout<<"constructor is called for object no :"<<j<<endl;
        nmbr=j;
    };
    ~test()
    {
        c++;
        cout<<"destructor is called for object no :"<<c<<endl;
    };
};

int test::c=0;

int main()
{
  test ob[]={test(1),test(2),test(3)};
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上述程序输出

constructor is called for object no :1
constructor is called for object no :2
constructor is called for object no :3
destructor is called for object no :1
destructor is …
Run Code Online (Sandbox Code Playgroud)

c++ destructor

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

在C++中,如何通过给出对​​象的成员来查找对象向量中的某些项?

例如,我已经定义了类foo和向量vec:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class foo {
public:
    foo(int flag, char ch):flag(flag), ch(ch) {}
    int flag;
    char ch;
};
int main(void)
{
    vector<foo> vec;
    vec.push_back(foo(1,'a'));
    vec.push_back(foo(2,'b'));
    vec.push_back(foo(3,'c'));
    //blabla...
}
Run Code Online (Sandbox Code Playgroud)

我已经找到了如何找到单个元素:如何在std :: vector中找到一个项目?
但现在我想通过给一个字符来找到一个对象,比如'b'.如何有效实现这一目标?

c++ vector object

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