Я не приурочил его, но я подозреваю, что это будет довольно быстро:
import numpy as np
list1=[1, 2, 3]
list2=[4, 5, 6]
list_sum = (np.add(list1, list2)).tolist()
[5, 7, 9]
R"(\bthis\b)"
является исходным строковым литералом , а не литералом регулярного выражения, если вы об этом думаете. В C ++ нет литералов регулярных выражений, но std::regexp
может быть сконструирован из массива символов или std::string
.
Таким образом, вы можете просто сделать
string word = "this";
R"(\b)" + word + R"(\b)"
или, что эквивалентно используя простые старые строковые литералы
string word = "this";
"\\b" + word + "\\b"
Примечание: В обоих случаях результатом является std::string
, потому что word
является std::string
. Это отличается от R"(\bword\b)"
, который представляет собой массив символов. На всякий случай разница имеет значение.
Слово предупреждения, хотя: содержание слова, вероятно, происходит извне программы. Вам нужно процитировать его, поскольку он может содержать символы, которые являются особыми в регулярных выражениях. В противном случае вы, вероятно, создаете уязвимость безопасности в своей программе. Вы должны быть в порядке для упражнений класса, которые никто, кроме вашего преподавателя, не будет смотреть, но лучше всего поместить в свой код строку, например
#warning "word" needs proper quoting to avoid security vulnerabilities
, если вы попытаетесь повторно использовать свои код через год, когда вы забыли об этой проблеме. Таким образом, компилятор вам напомнит.