我想创建std::string包含std::map<std::string, std::string>由某些分隔符分隔的第一个元素(它可以来自 STL 或 Boost)。有没有比循环更好的解决方案(一行)?喜欢boost::algorithm::join为std::vector<std::string>。
我知道有类似的问题,但我有一些不同的问题......
我想在点击按钮后删除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) 我有一个std::vector<std::unique_ptr<T>> vec1T是抽象类型.我想创建std::vector<T*> vec2第二个向量指针指向的对象是第一个向量指针指向的对象的副本.
例如:*(vec1[0]) == *(vec2[0])和vec1[0].get() != vec2[0]......等......
怎么做?
函数/类使用参数包时是否可以具有其他模板参数?
我尝试简单的求和函数。我想使用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) 我需要将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?
(我知道它看起来很奇怪.我写了一个简单的例子.我想问一下转换.)
我有一个std::map<int, int>和一个std::list<std::map<int, int>::const_iterator>.
我可以使用STL算法list从map顺序填充所有迭代器吗?
如果可能,我不想使用显式循环.
我想知道转换是否像:
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吗?