尝试运行稳定基线健身房的测试代码
import gym
from stable_baselines3 import A2C
env = gym.make("CartPole-v1")
model = A2C("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=10_000)
obs = env.reset()
for i in range(100):
action, _state = model.predict(obs, deterministic=True)
obs, reward, done, info = env.step(action)
env.render()
if done:
obs = env.reset()
Run Code Online (Sandbox Code Playgroud)
发现错误“NameError:名称'glPushMatrix'未定义”
Traceback (most recent call last):
File "test_cart_pole.py", line 14, in <module>
env.render()
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/core.py", line 295, in render
return self.env.render(mode, **kwargs)
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/envs/classic_control/cartpole.py", line 229, in render
return self.viewer.render(return_rgb_array=mode == "rgb_array")
File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/envs/classic_control/rendering.py", line 126, in render
self.transform.enable()
File …Run Code Online (Sandbox Code Playgroud) TL; DR:您从(a)我的列表视图中选择一个选项.然后,你改变主意并在(b)我的编辑文本中输入内容.如何清除列表视图选择并仅显示您的编辑文本?(反之亦然)
我有一个带有选项列表视图的应用程序以及一个用于创建自己选项的edittext.我需要用户选择或创建一个选项,但不能同时选择或创建两个选项.这是我的布局图:
每当用户从列表视图中选择一个选项时,我将其设置为"已选择",方法是将其设置为绿色,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@color/colorPrimary"/>
<item
android:state_selected="false"
android:drawable="@color/windowBackground" />
</selector>
Run Code Online (Sandbox Code Playgroud)
(这被设置为我的listview的背景)
问题:如果用户决定输入他们自己的选项,我想取消选择listview选项,因为他们只能有一个选项.
我尝试过以下操作,但没有任何选择.
e.setOnEditorActionListener(new TextView.OnEditorActionListener()
{
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
for(int i=0; i<=5; i++){
listView.setItemChecked(i, false);
}
listView.clearChoices();
listView.requestLayout()
adapter.notifyDataSetChanged()
}
}
Run Code Online (Sandbox Code Playgroud)
一个非常令人费解的困境,任何帮助表示赞赏!
编辑:这是edittext的布局:
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView4"
android:layout_alignBottom="@+id/textView4"
android:layout_toEndOf="@+id/textView4"
android:layout_toRightOf="@+id/textView4"
android:color="@color/colorPrimary"
android:imeOptions="actionDone"
android:inputType="text"
android:textColor="@color/textColorPrimary"
android:textColorHint="@color/colorPrimary" />
Run Code Online (Sandbox Code Playgroud)
编辑:这是listview的布局:
<ListView
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="250dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/toolbar"
android:background="@drawable/bg_key"
android:choiceMode="singleChoice"
android:listSelector="@color/colorPrimary">
</ListView>
Run Code Online (Sandbox Code Playgroud) 我知道,一般来说,我们可以在 C++11 中前向声明枚举。
那么,为什么会这样:
enum kind_t { kind1, kind2 };
template <kind_t Kind> struct foo {};
template <> struct foo<kind1> {
enum named : int;
};
enum foo<kind1>::named : int {
named1 = 123,
named2 = 456,
};
Run Code Online (Sandbox Code Playgroud)
使用 GCC (12.1) 编译失败?错误是(上帝螺栓):
<source>:9:6: error: cannot add an enumerator list to a template instantiation
9 | enum foo<kind1>::named : int {
| ^~~~~~~~~~
ASM generation compiler returned: 1
<source>:9:6: error: cannot add an enumerator list to a …Run Code Online (Sandbox Code Playgroud) 我的问题是关于https://en.cppreference.com/w/cpp/memory/unique_ptr中的示例
struct List
{
struct Node
{
int data;
std::unique_ptr<Node> next;
};
std::unique_ptr<Node> head;
~List()
{
// destroy list nodes sequentially in a loop, the default destructor
// would have invoked its `next`'s destructor recursively, which would
// cause stack overflow for sufficiently large lists.
while (head)
head = std::move(head->next);
}
...
};
Run Code Online (Sandbox Code Playgroud)
当 时head = std::move(head->next),会发生三件事:
head->next为nullptr;head为新值;head销毁曾经指向的Node 对象;上面的代码有效意味着 3 保证在 1 之后发生,否则链接仍然存在。
我想知道是否有一个书面规则来保证这样的顺序,或者它只是一个隐藏的实现细节,并且该示例可以正常工作。
我有一个混合 Objective-C 和 Swift 类的框架,我想在它们之间进行通信,保持 Swift 接口内部(不公开 Swift 类和方法)。有办法实现吗?
PS 请注意,由于它是一个框架项目,因此不能选择使用桥接标头解决方案,因为框架不支持它。
考虑以下函数:
std::shared_mutex mutex;
void foo() {
std::shared_lock readLock{ mutex };
// ...
// read-only part of the function
// ...
{
std::unique_lock lock{ mutex, std::adopt_lock }
// ...
// read/write part
// ...
}
// ... some other read part ...
}
Run Code Online (Sandbox Code Playgroud)
std::unique_lock最初,该函数的所有部分都只有一个。它工作得很好,但作为优化的一部分,它用 a 包裹了一些部分std::shared_lock。对我来说,它看起来完全合法,但在使用它之后,结果发现一些死锁开始出现(不一定在函数中,但很明显,这种变化是问题的根本原因)
任何人都可以详细说明这种方法是否定义良好以及为什么它会导致出现死锁问题?
Microsoft文档页面之一中给出了一些奇怪的示例,该示例页面由两个类组成,一个是基类,另一个是派生类。基类具有以下虚拟函数成员:
virtual void setEars(string type) // virtual function
{
_earType = type;
}
Run Code Online (Sandbox Code Playgroud)
另一个在派生类中定义,如注释中所述,它重新定义了虚函数:
// virtual function redefined
void setEars(string length, string type)
{
_earLength = length;
_earType = type;
}
Run Code Online (Sandbox Code Playgroud)
这两个具有不同的签名,我还从未听说过您是否真的可以用另一个签名的函数重新定义虚拟函数。我编译了此示例,可以发现这两个示例之间的所有替代行为。样本只是误导还是我遗漏了一些东西?
给定我有一个带有构造函数的类,如下所示:
MClass(const char *t_source);
Run Code Online (Sandbox Code Playgroud)
实际上,有很多地方t_source是从文件中获取的,所以我正在考虑制作另一个构造器,该构造FILE器改为使用指针并将大部分样板放入其中。同时,现有的构造函数本身也有很多用途,并且包含我不想在代码中重复多次的逻辑。我正在考虑委派构造函数,但无法看到如何利用此功能,因为我需要一个以上的语句来从FILE实例中提取数据(例如分配char数组并从中读取FILE并随后删除)。所以本质上我想做这样的事情:
MClass(FILE *t_file) : MClass(MNameSpace::readFile(t_file)) {}
Run Code Online (Sandbox Code Playgroud)
但是要采取一些初步和事后行动。任何的想法?
考虑以下模板及其专业化:
template<typename R>
R func() {
return 0;
}
template<>
auto func() {
std::cout << "Auto deduced" << std::endl;
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我不确定是否允许这样的声明,但是当使用 Xcode 编译它时,clang 会发出一个奇怪的错误:
template<typename R>
R func() {
return 0;
}
template<>
auto func() {
std::cout << "Auto deduced" << std::endl;
return 1;
}
Run Code Online (Sandbox Code Playgroud)
尽管无法调用专业化,MSVC 仍然可以很好地编译它。是否允许这种专业化?如果允许,如何使用它?
c++ ×6
c++11 ×2
android ×1
android-xml ×1
appkit ×1
c++17 ×1
clang ×1
cocoa ×1
enums ×1
frameworks ×1
gcc ×1
ios ×1
java ×1
macos ×1
move ×1
mutex ×1
objective-c ×1
opengl ×1
python ×1
render ×1
swift ×1
unique-ptr ×1
visual-c++ ×1
xcode ×1