小编ida*_*hmu的帖子

C++链接是否足够智能以避免未使用的库链接?

我还远未完全理解C++链接器的工作原理,我对此有一个特定的问题.

说我有以下内容:

Utils.h

namespace Utils
{
    void func1();
    void func2();
}
Run Code Online (Sandbox Code Playgroud)

Utils.cpp

#include "some_huge_lib" // needed only by func2()

namespace Utils
{
    void func1() { /* do something */ }
    void func2() { /* make use of some functions defined in some_huge_lib */ }
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

int main()
{
  Utils::func1()
}
Run Code Online (Sandbox Code Playgroud)

我的目标是生成尽可能小的二进制文件.

我的问题是,是否some_huge_lib会包含在输出对象文件中?

c++ linker

43
推荐指数
4
解决办法
3774
查看次数

附加到元组中定义的列表 - 这是一个错误吗?

所以我有这个代码:

tup = ([1,2,3],[7,8,9])
tup[0] += (4,5,6)
Run Code Online (Sandbox Code Playgroud)

这会产生此错误:

TypeError: 'tuple' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

虽然这段代码:

tup = ([1,2,3],[7,8,9])
try:
    tup[0] += (4,5,6)
except TypeError:
    print tup
Run Code Online (Sandbox Code Playgroud)

打印这个:

([1, 2, 3, 4, 5, 6], [7, 8, 9])
Run Code Online (Sandbox Code Playgroud)

这种行为有望吗?

注意

我意识到这不是一个非常常见的用例.但是,虽然预计会出现错误,但我没想到列表会发生变化.

python tuples list

37
推荐指数
3
解决办法
2027
查看次数

指向已删除提交的Git标记会发生什么

说我做以下事情:

  1. 创建分支 X
  2. 创建标签t(分支X)
  3. 删除分支 X

标签会发生什么t?它刚刚漂浮在那里吗?它被认为是垃圾吗?

在删除分支本身之前,是否应该删除指向分支的所有标记?

参考

来自Git Basics - 标记:

Git使用两种主要类型的标签:轻量级和注释.轻量级标记非常类似于不会更改的分支 - 它只是指向特定提交的指针.

git git-tag git-branch

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

python pandas没有从csv文件中读取第一列

我有一个名为st1.csv的简单2列csv文件:

GRID    St1  
1457    614  
1458    657  
1459    679  
1460    732  
1461    754  
1462    811  
1463    748  
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试读取csv文件时,未加载第一列:

a = pandas.DataFrame.from_csv('st1.csv')  
a.columns
Run Code Online (Sandbox Code Playgroud)

输出:

 Index([u'ST1'], dtype=object)
Run Code Online (Sandbox Code Playgroud)

为什么没有读取第一列?

python csv pandas

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

java.library.path中没有ocijdbc12

我试图通过使用OCI驱动程序的java程序建立与oracle的连接.

以下是配置.

  • Windows 7,32位.
  • JDK 1.7
  • Oracle客户端11g R2.

ojdbc7.jar在我的独立应用程序的类路径中.但我得到以下异常:

Exception in thread 'main' java.lang.UnsatisfiedLinkError: no ocijdbc12 in java.library.path
Run Code Online (Sandbox Code Playgroud)

我尝试使用瘦驱动程序连接.对于瘦驱动程序,它是Connection Succeeded.我用谷歌搜索,但无法弄清楚解决方案.

请帮我解决这个问题.

java oracle dll oracle11g

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

哪个元素将从std :: multimap :: find返回?

很可能这个问题是重复的,但我找不到它的引用.

我正在查看std :: multiset :: find&std :: multimap :: find函数,我想知道如果多次插入特定键,将返回哪个元素?

从描述:

请注意,此函数将迭代器返回到单个元素(可能是多个等效元素)

是保证单个元素第一个插入的还是随机的?

背景

我问的原因是我正在实现像类这样的multipmap:

typedef std::vector<Item> Item_vector;

class Item
{
  string m_name;
};

class MyItemMultiMap
{
public:

  // forgive me for not checking if key exist in the map. it is just an example.

  void add_item( const Item& v ) { m_map[v.m_name].push_back(v); }

  // is returning the first item in the vector mimic std::multimap::find behavior?
  Item& get_item( const string& v …
Run Code Online (Sandbox Code Playgroud)

c++ stl multimap multiset

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

使用多个ofstreams在c ++中写入单个输出文件

我上课Writer有两个ofstream成员.
两个流都与同一输出文件相关联.我想在Writer::write方法中使用两个流,但要确保每个流写入实际输出文件的末尾.

class my_ofstream1:
    public ofstream
{
    // implement some functions.
    // using internal, extended type of streambuf
};

class my_ofstream2:
    public ofstream
{
    // implement some functions.
    // using internal, extended type of streambuf 
    // (not the same type as found in my_ofstream1)
};


class Writer
{
public:

    void open(string path)
    {
        f1.open(path.c_str(),ios_base::out); f2.open(path.c_str(),ios_base::out);
    }

    void close()
    {
        f1.close(); f2.close();
    }

    void write()
    {
        string s1 = "some string 1"; …
Run Code Online (Sandbox Code Playgroud)

c++ ofstream streambuf

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

如何将路径拆分为单独的字符串?

这是一个免费的问题:
如何从单独的字符串(安全)构建一个完整的路径字符串?

所以我的问题是,如何以跨平台的方式将路径拆分为单独的字符串.

这个解决方案,使用Boost.Filesystem非常优雅,Boost必须实现一些splitPath()函数.我找不到任何东西.

注意:请记住,我自己可以完成这项任务,但我对封闭的盒子解决方案更感兴趣.

c++ boost split cross-platform path

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

如何从Jscript文件加载DLL文件?

所以我正在编写一个独立的JScript文件来执行Windows Script Host(这个文件不会被用作Web应用程序).

我的目标是加载一个DLL文件.就像在应用程序中使用LoadLibrary函数一样C++.

我试过研究这个主题,但我没有提出任何有用的东西.我迷失了,我没有任何代码可以分享.我明白使用ActiveXObject可能会来救我.如果是这样,任何想法如何使用它?

更新:

如果我们都同意加载是不可能的,我将接受有效性检查.意思是,不要尝试加载但检查它是否已加载且功能正常.

dll jscript

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

按多个 PID 过滤的任务列表

我正在使用tasklist命令。

我正在尝试使用该/fi选项来过滤多个 PID。

试图

tasklist.exe /v /fi "PID eq 3248" /fi "PID eq 9488"

结果

INFO: No tasks are running which match the specified criteria.

不起作用。我只能假设过滤器是使用逻辑与在内部评估的,显然永远不会为真。

如何按多个PID过滤?

丑陋的替代品1

如果我单独运行它,结果是可以的,我可以设置进程信息。然而,

  • tasklist.exe /v /fi "PID eq 3248"
  • tasklist.exe /v /fi "PID eq 9488"

我想避免激活两个单独的命令。

丑陋的选择2

find

tasklist.exe /v  | find /i "9488"
Run Code Online (Sandbox Code Playgroud)

这带来了以下问题:

  1. 如何找到多个PID?
  2. 如何确保找到的字符串确实是 PID 而不是其他任何东西。

cmd tasklist filter find

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