小编pet*_*555的帖子

std::map<string, string> 到字符串(第一个值)

我想创建std::string包含std::map<std::string, std::string>由某些分隔符分隔的第一个元素(它可以来自 STL 或 Boost)。有没有比循环更好的解决方案(一行)?喜欢boost::algorithm::joinstd::vector<std::string>

c++ string boost dictionary c++11

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

如何刷新JFrame

我知道有类似的问题,但我有一些不同的问题......

我想在点击按钮后删除JFrame的所有元素:

有用:

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0)
    {
        frame.getContentPane().removeAll();
        frame.revalidate();
        frame.repaint();
    }
});
Run Code Online (Sandbox Code Playgroud)

所有元素都消失了.但之后我需要在这个JFrame上进行putlements ...在上面这三行之后(下面frame.repaint())我调用方法initialize(我在开始创建窗口时调用的方法):

private void initialize()
{
    frame = new JFrame();
    frame.setBounds(100, 100, 1454, 860);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    JButton btnNewSubject = new JButton("New subject");
    btnNewSubject.setBounds(647, 788, 137, 23);
    frame.getContentPane().add(btnNewSubject);

    JButton btnRefresh = new JButton("Refresh");
    btnRefresh.setBounds(1339, 788, 89, 23);
    frame.getContentPane().add(btnRefresh);

    JLabel lblNewLabel = new JLabel("Subject");
    lblNewLabel.setBounds(235, 11, 75, 14);
    frame.getContentPane().add(lblNewLabel);

    JLabel lblOwner = new JLabel("Owner");
    lblOwner.setBounds(662, 11, 46, 14);
    frame.getContentPane().add(lblOwner);

    JLabel lblStatus = …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing

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

如何将vector <unique_ptr <T >>复制到独立向量<T*>

我有一个std::vector<std::unique_ptr<T>> vec1T是抽象类型.我想创建std::vector<T*> vec2第二个向量指针指向的对象是第一个向量指针指向的对象的副本.

例如:*(vec1[0]) == *(vec2[0])vec1[0].get() != vec2[0]......等......

怎么做?

c++ smart-pointers vector unique-ptr c++11

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

模板功能使用参数包时如何传递其他模板参数?

函数/类使用参数包时是否可以具有其他模板参数?

我尝试简单的求和函数。我想使用template Printer课程打印一些东西。怎么做?如何告诉编译器专门“标记”第一个参数...或有一些解决方法。

下面的代码生成错误。

#include <iostream>

template <typename T>
double sum(T t)
{
    return t;
}

template <typename Printer, typename T, typename... Rest>
double sum(Printer printer, T t, Rest... rest)
{
    printer.print();

    return t + sum(rest...);
}

struct P
{
    void print() { std::cout << "= " << std::endl; }
};

int main()
{
    P printer;
    std::cout << sum(printer, 2, 3, 4.1) << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates metaprogramming variadic-templates c++14

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

转换void*(char*without\0)到std :: string

我需要将const void*(指向不带'/ 0'的c-string)转换为std :: string.

我有功能"功能":

void function(const void* ptr, size_t size);
Run Code Online (Sandbox Code Playgroud)

有一个电话:

...
std::string x("abcd");
function(x.data(), x.size());
...
Run Code Online (Sandbox Code Playgroud)

如何在'function'中将第一个参数更改为std :: string?

(我知道它看起来很奇怪.我写了一个简单的例子.我想问一下转换.)

c++ stl

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

使用另一个容器中的迭代器填充容器

我有一个std::map<int, int>和一个std::list<std::map<int, int>::const_iterator>.

我可以使用STL算法listmap顺序填充所有迭代器吗?
如果可能,我不想使用显式循环.

c++ stl c++11

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

long long to int和int to long long conversion

我想知道转换是否像:

int to long

int to long long

long to int

long long to int

long long to long

long to long long

long double to double

double to long double

(类似于未签名的)是昂贵的操作.我们应该担心转换并定义适当的分配类型吗?(当然存在丢失精度的风险,但我不写它.我在询问性能).

例如,如果我确定该号码可以存储在int类型中.我必须在功能中分配一些东西,如:void writeToX(long long& x).

传递给函数long long x而不是重要int x吗?

c++ type-conversion c++11

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