小编Jic*_*hao的帖子

如何设置HTML <select>元素的默认值?

我认为"value"<select>下面的元素上添加属性集会导致默认选择<option>包含my provided "value":

<select name="hall" id="hall" value="3">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但是,这并没有像我预期的那样奏效.如何设置<option>默认选择的元素?

html html-select

1343
推荐指数
14
解决办法
236万
查看次数

二叉树的应用是什么?

我想知道二叉树的特定应用是什么.你能举一些真实的例子吗?

binary-tree

302
推荐指数
15
解决办法
29万
查看次数

如何自动缩进源代码?

如何在Visual Studio 2010中自动缩进源代码?

我使用了Ctrl+ K,Ctrl+ F,但它不起作用; 有没有其他方式/插件来做到这一点?

indentation visual-studio-2010 visual-studio

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

十字架初始化有什么迹象?

考虑以下代码:

#include <iostream>
using namespace std;

int main()
{
    int x, y, i;
    cin >> x >> y >> i;
    switch(i) {
        case 1:
            // int r = x + y; -- OK
            int r = 1; // Failed to Compile
            cout << r;
            break;
        case 2:
            r = x - y;
            cout << r;
            break;
    };
}
Run Code Online (Sandbox Code Playgroud)

G ++抱怨.crosses initialization of 'int r'我的问题是:

  1. 什么是crosses initialization
  2. 为什么第一个初始化程序x + y通过编译,但后来失败了?
  3. 所谓的问题是什么crosses initialization

编辑 …

c++ initialization

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

为什么Java禁止内部类中的静态字段?

class OuterClass {
 class InnerClass {
  static int i = 100; // compile error
  static void f() { } // compile error
 }
} 
Run Code Online (Sandbox Code Playgroud)

虽然无法访问静态字段OuterClass.InnerClass.i,但如果我想记录一些应该是静态的东西,例如创建的InnerClass对象的数量,那么将该字段设置为静态会很有帮助.那么为什么 Java禁止内部类中的静态字段/方法呢?

编辑:我知道如何使编译器满意静态嵌套类(或静态内部类),但我想知道的是为什么java禁止语言设计和内部类(或普通内部类)内的静态字段/方法实施方面,如果有人了解更多.

java static-members inner-classes

79
推荐指数
7
解决办法
3万
查看次数

Linux下的#pragma comment(lib,"xxx.lib")等效?

我有一个静态库文件libunp.a,我知道我可以gcc -lunp xx用来链接到库.

我可以#pragma comment(lib,"xxx.lib")用来告诉Microsoft C/C++编译器包含库; 我怎么能在Linux/GCC下做到这一点?

gcc static-linking

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

有没有更好的方法来排列字符串?

void permute(string elems, int mid, int end)
{
    static int count;
    if (mid == end) {
        cout << ++count << " : " << elems << endl;
        return ;
    }
    else {
    for (int i = mid; i <= end; i++) {
            swap(elems, mid, i);
            permute(elems, mid + 1, end);
            swap(elems, mid, i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的函数显示了str(str[0..mid-1]作为一个稳定的前缀和str[mid..end]一个可置换的后缀)的排列.所以我们可以permute(str, 0, str.size() - 1)用来显示一个字符串的所有排列.

但该函数使用递归算法; 也许它的表现可以改善?

是否有更好的方法来置换字符串?

c++ string algorithm permutation

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

如何迭代打包的可变参数模板参数列表?

我正在尝试找到一个迭代包变量模板参数列表的方法.现在和所有迭代一样,您需要某种方法来了解打包列表中有多少参数,更重要的是如何从打包参数列表中单独获取数据.

一般的想法是迭代列表,将int类型的所有数据存储到向量中,将char*类型的所有数据存储到向量中,并将float类型的所有数据存储到向量中.在这个过程中,还需要一个单独的向量来存储参数进入顺序的各个字符.例如,当你push_back(a_float)时,你也在做一个push_back('f'),它只是存储一个单独的char来了解数据的顺序.我也可以在这里使用std :: string,只需使用+ =.该矢量仅用作示例.

现在,事物的设计方式是功能本身是使用宏构建的,尽管存在恶意,但它是必需的,因为这是一个实验.因此,使用递归调用几乎是不可能的,因为将包含所有这些的实际实现将在编译时扩展; 你不能招募一个宏.

尽管有各种可能的尝试,我仍然坚持要弄清楚如何实际做到这一点.所以相反,我使用了一个更复杂的方法,包括构造一个类型,并将该类型传递到varadic模板,在一个向量中扩展它,然后简单地迭代它.但是我不想像以下那样调用函数:

foo(arg(1), arg(2.0f), arg("three");
Run Code Online (Sandbox Code Playgroud)

所以真正的问题是如果没有这样的话我该怎么办?为了让你们更好地理解代码实际在做什么,我已经粘贴了我目前正在使用的乐观方法.

struct any {
  void do_i(int   e) { INT    = e; }
  void do_f(float e) { FLOAT  = e; }
  void do_s(char* e) { STRING = e; }

  int   INT;
  float FLOAT;
  char *STRING;
};


template<typename T> struct get        { T      operator()(const any& t) { return T();      } };
template<>           struct get<int>   { int    operator()(const any& t) { return t.INT;    } };
template<>           struct get<float> { float  operator()(const any& …
Run Code Online (Sandbox Code Playgroud)

c++ variadic-templates c++11

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

为什么使用string :: iterator而不是index?

可能重复:
为什么使用迭代器而不是数组索引?

string::iterator it;
for (it = str.begin(); it < str.end(); it++) 
    cout << *it;
cout << endl;
Run Code Online (Sandbox Code Playgroud)

为什么不:

for (int i = 0; i < str.size(); i++)
    cout << str[i];
cout << endl;
Run Code Online (Sandbox Code Playgroud)

似乎string :: iterator也没有提供范围检查.我们为什么要使用string::iterator而不是索引?

谢谢.

c++ string iterator

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

C++程序员应该避免memset吗?

我听说c ++程序员应该避免使用memset,

class ArrInit {
    //! int a[1024] = { 0 };
    int a[1024];
public:
    ArrInit() {  memset(a, 0, 1024 * sizeof(int)); }
};
Run Code Online (Sandbox Code Playgroud)

所以考虑到上面的代码,如果你不使用memset,怎么能把[1..1024]填充为0?在C++中memset有什么问题?

谢谢.

c++ initialization memset

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